[{"data":1,"prerenderedAt":429},["ShallowReactive",2],{"\u002Fcontinuity-tutorials":3},{"id":4,"title":5,"body":6,"createdAt":419,"description":24,"draft":420,"extension":421,"image":422,"mastodonThread":422,"meta":423,"navigation":42,"path":424,"seo":425,"stem":5,"tags":426,"updatedAt":427,"__hash__":428},"content\u002FContinuity Tutorials.md","Continuity Tutorials",{"type":7,"value":8,"toc":416},"minimark",[9,14,18,396,399,402,405,409,412],[10,11,13],"h2",{"id":12},"do-as-i-do","Do As I Do",[15,16,17],"p",{},"Let's try a simple method. I'll show you code, then I'll talk about it. Here is our first example... it isn't exactly a hello world but it'll do.",[19,20,25],"pre",{"className":21,"code":22,"language":23,"meta":24,"style":24},"language-perl shiki shiki-themes github-light github-dark monokai","#!\u002Fusr\u002Fbin\u002Fperl\n\nuse strict;\nuse Continuity;\n\npackage Addnums;\nuse base 'Continuity::Application';\n\nsub main {\n  my $self = shift;\n  my $a = $self->getNum('Enter first number: ');\n  my $b = $self->getNum('Enter second number: ');\n  $self->disp(\"\n    Total of $a + $b is: \" . ($a + $b) . \".\n    So there.\n  \");\n}\n\nsub getNum {\n  my ($self, $msg) = @_;\n  my $f = $self->disp(qq{\n      $msg \u003Cinput name=\"num\">\n      \u003Cinput type=submit value=\"Enter\">\u003Cbr>\n  });\n  return $f->{'num'};\n}\n\npackage main;\n\nmy $c = new Continuity(\n  appname => 'Addnums',\n  print_html_header => 1,\n  print_form => 1,\n);\n\n$c->go();\n","perl","",[26,27,28,37,44,55,63,68,81,95,100,114,129,149,166,180,204,210,218,224,229,239,247,262,271,277,285,305,310,315,324,329,338,354,365,375,380,385],"code",{"__ignoreMap":24},[29,30,33],"span",{"class":31,"line":32},"line",1,[29,34,36],{"class":35},"s8-w5","#!\u002Fusr\u002Fbin\u002Fperl\n",[29,38,40],{"class":31,"line":39},2,[29,41,43],{"emptyLinePlaceholder":42},true,"\n",[29,45,47,51],{"class":31,"line":46},3,[29,48,50],{"class":49},"sC2Qs","use",[29,52,54],{"class":53},"sMOD_"," strict;\n",[29,56,58,60],{"class":31,"line":57},4,[29,59,50],{"class":49},[29,61,62],{"class":53}," Continuity;\n",[29,64,66],{"class":31,"line":65},5,[29,67,43],{"emptyLinePlaceholder":42},[29,69,71,74,78],{"class":31,"line":70},6,[29,72,73],{"class":49},"package",[29,75,77],{"class":76},"sz2Vg"," Addnums",[29,79,80],{"class":53},";\n",[29,82,84,86,89,93],{"class":31,"line":83},7,[29,85,50],{"class":49},[29,87,88],{"class":53}," base ",[29,90,92],{"class":91},"sstjo","'Continuity::Application'",[29,94,80],{"class":53},[29,96,98],{"class":31,"line":97},8,[29,99,43],{"emptyLinePlaceholder":42},[29,101,103,107,111],{"class":31,"line":102},9,[29,104,106],{"class":105},"sq6CD","sub",[29,108,110],{"class":109},"srTi1"," main",[29,112,113],{"class":53}," {\n",[29,115,117,120,123,127],{"class":31,"line":116},10,[29,118,119],{"class":49},"  my",[29,121,122],{"class":53}," $self = ",[29,124,126],{"class":125},"sTrkL","shift",[29,128,80],{"class":53},[29,130,132,134,137,140,143,146],{"class":31,"line":131},11,[29,133,119],{"class":49},[29,135,136],{"class":53}," $a = $self",[29,138,139],{"class":49},"->",[29,141,142],{"class":53},"getNum(",[29,144,145],{"class":91},"'Enter first number: '",[29,147,148],{"class":53},");\n",[29,150,152,154,157,159,161,164],{"class":31,"line":151},12,[29,153,119],{"class":49},[29,155,156],{"class":53}," $b = $self",[29,158,139],{"class":49},[29,160,142],{"class":53},[29,162,163],{"class":91},"'Enter second number: '",[29,165,148],{"class":53},[29,167,169,172,174,177],{"class":31,"line":168},13,[29,170,171],{"class":53},"  $self",[29,173,139],{"class":49},[29,175,176],{"class":53},"disp(",[29,178,179],{"class":91},"\"\n",[29,181,183,186,189,192,195,198,201],{"class":31,"line":182},14,[29,184,185],{"class":91},"    Total of ",[29,187,188],{"class":53},"$a",[29,190,191],{"class":91}," + ",[29,193,194],{"class":53},"$b",[29,196,197],{"class":91}," is: \"",[29,199,200],{"class":53}," . ($a + $b) . ",[29,202,203],{"class":91},"\".\n",[29,205,207],{"class":31,"line":206},15,[29,208,209],{"class":91},"    So there.\n",[29,211,213,216],{"class":31,"line":212},16,[29,214,215],{"class":91},"  \"",[29,217,148],{"class":53},[29,219,221],{"class":31,"line":220},17,[29,222,223],{"class":53},"}\n",[29,225,227],{"class":31,"line":226},18,[29,228,43],{"emptyLinePlaceholder":42},[29,230,232,234,237],{"class":31,"line":231},19,[29,233,106],{"class":105},[29,235,236],{"class":109}," getNum",[29,238,113],{"class":53},[29,240,242,244],{"class":31,"line":241},20,[29,243,119],{"class":49},[29,245,246],{"class":53}," ($self, $msg) = @_;\n",[29,248,250,252,255,257,259],{"class":31,"line":249},21,[29,251,119],{"class":49},[29,253,254],{"class":53}," $f = $self",[29,256,139],{"class":49},[29,258,176],{"class":53},[29,260,261],{"class":91},"qq{\n",[29,263,265,268],{"class":31,"line":264},22,[29,266,267],{"class":53},"      $msg",[29,269,270],{"class":91}," \u003Cinput name=\"num\">\n",[29,272,274],{"class":31,"line":273},23,[29,275,276],{"class":91},"      \u003Cinput type=submit value=\"Enter\">\u003Cbr>\n",[29,278,280,283],{"class":31,"line":279},24,[29,281,282],{"class":91},"  }",[29,284,148],{"class":53},[29,286,288,291,294,296,299,302],{"class":31,"line":287},25,[29,289,290],{"class":49},"  return",[29,292,293],{"class":53}," $f",[29,295,139],{"class":49},[29,297,298],{"class":53},"{",[29,300,301],{"class":91},"'num'",[29,303,304],{"class":53},"};\n",[29,306,308],{"class":31,"line":307},26,[29,309,223],{"class":53},[29,311,313],{"class":31,"line":312},27,[29,314,43],{"emptyLinePlaceholder":42},[29,316,318,320,322],{"class":31,"line":317},28,[29,319,73],{"class":49},[29,321,110],{"class":76},[29,323,80],{"class":53},[29,325,327],{"class":31,"line":326},29,[29,328,43],{"emptyLinePlaceholder":42},[29,330,332,335],{"class":31,"line":331},30,[29,333,334],{"class":49},"my",[29,336,337],{"class":53}," $c = new Continuity(\n",[29,339,341,345,348,351],{"class":31,"line":340},31,[29,342,344],{"class":343},"s7F3e","  appname",[29,346,347],{"class":49}," =>",[29,349,350],{"class":91}," 'Addnums'",[29,352,353],{"class":53},",\n",[29,355,357,360,362],{"class":31,"line":356},32,[29,358,359],{"class":343},"  print_html_header",[29,361,347],{"class":49},[29,363,364],{"class":53}," 1,\n",[29,366,368,371,373],{"class":31,"line":367},33,[29,369,370],{"class":343},"  print_form",[29,372,347],{"class":49},[29,374,364],{"class":53},[29,376,378],{"class":31,"line":377},34,[29,379,148],{"class":53},[29,381,383],{"class":31,"line":382},35,[29,384,43],{"emptyLinePlaceholder":42},[29,386,388,391,393],{"class":31,"line":387},36,[29,389,390],{"class":53},"$c",[29,392,139],{"class":49},[29,394,395],{"class":53},"go();\n",[15,397,398],{},"Here we have two modules going, and in fact you may want to split this into two scripts. All this program does is prompt for a first number, then prompt for a second number, and then show the sum. Very boring, but lovely for pointing out some features. Let's go by way of execution-flow.",[15,400,401],{},"First, besides doing some declaration stuff, let's look at the Main package. Here we create a new Continuity object, and give it some settings. There is only one mandatory parameter, appname. This corresponds to the name of our class, the one which actually holds the application. This one is named Addnums, and you can see its definition above. Addnums doesn't want to worry about printing the standard html header, nor does it want to print out the form tags, so we ask Continuity to take care of these things.",[15,403,404],{},"Once we have our Continuity object set up, and have named it $c, we tell it to GO! And that it does.",[406,407],"img",{"src":408},"https:\u002F\u002Fwww.plantuml.com\u002Fplantuml\u002Fpng\u002FTSwn2i8m58NXFKznwExGh0KdqSr1VO5WOWtK9DpSK8huxcA3ODgu7lu3dxOzgN370KyX0ANrPVJORD7iBKL6R_YO7aqdi5ZcPbIMSVC4wq9YjBbRhNDBXXCvj9519gQ1SxoUFtLsT0lIsLozquMfd6eeMKN90YMThg5-vl-edOrXK1DEtxzulG40",[406,410],{"src":411},"https:\u002F\u002Fwww.plantuml.com\u002Fplantuml\u002Fpng\u002FdOwx3e9044Lxlk9c6nhiJOWsFWkji3CM6nnq8onaTzRuYFzkO3LIW2PsaxbppjozEXXP7R70FG3ylBNgHYCnZ8PY5mU0I5WQZc0e9NKcE4i6IbUE1GPZYCcHqXCIbaoYkMylcekvCfPxieJIKk_xGbVun1kQtLJPAfTNB3Vh5RBI8AipQ5T4q7HXs9g7iWYzE_IArwDkXst2ReahtWPNzE1SiimZwB85YpYeeJ_grZzc5yLn9_-hwdUwi-a7UJm1",[413,414,415],"style",{},"html pre.shiki code .s8-w5, html code.shiki .s8-w5{--shiki-default:#6A737D;--shiki-dark:#6A737D;--shiki-sepia:#88846F}html pre.shiki code .sC2Qs, html code.shiki .sC2Qs{--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-sepia:#F92672}html pre.shiki code .sMOD_, html code.shiki .sMOD_{--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-sepia:#F8F8F2}html pre.shiki code .sz2Vg, html code.shiki .sz2Vg{--shiki-default:#6F42C1;--shiki-default-text-decoration:inherit;--shiki-dark:#B392F0;--shiki-dark-text-decoration:inherit;--shiki-sepia:#A6E22E;--shiki-sepia-text-decoration:underline}html pre.shiki code .sstjo, html code.shiki .sstjo{--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-sepia:#E6DB74}html pre.shiki code .sq6CD, html code.shiki .sq6CD{--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit;--shiki-sepia:#66D9EF;--shiki-sepia-font-style:italic}html pre.shiki code .srTi1, html code.shiki .srTi1{--shiki-default:#6F42C1;--shiki-dark:#B392F0;--shiki-sepia:#A6E22E}html pre.shiki code .sTrkL, html code.shiki .sTrkL{--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-sepia:#66D9EF}html pre.shiki code .s7F3e, html code.shiki .s7F3e{--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-sepia:#AE81FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .sepia .shiki span {color: var(--shiki-sepia);background: var(--shiki-sepia-bg);font-style: var(--shiki-sepia-font-style);font-weight: var(--shiki-sepia-font-weight);text-decoration: var(--shiki-sepia-text-decoration);}html.sepia .shiki span {color: var(--shiki-sepia);background: var(--shiki-sepia-bg);font-style: var(--shiki-sepia-font-style);font-weight: var(--shiki-sepia-font-weight);text-decoration: var(--shiki-sepia-text-decoration);}",{"title":24,"searchDepth":39,"depth":39,"links":417},[418],{"id":12,"depth":39,"text":13},"2004-10-17T18:56-04:00",false,"md",null,{},"\u002Fcontinuity-tutorials",{"title":5,"description":24},[],"2005-07-31T11:09-04:00","qu9TqBXY5uicGxIZ4AlMtQaUo4XIbqNLmyD-ScZj54E",1778988311116]