ãã°ããèªãã§ããªãã£ããPerlTestingãåéã 2ç« ã®æå¾ã«åºã¦ããwan/die/exceptionã®ãã¹ãã Test::Warn warnã§åºåãããã¡ãã»ã¼ã¸ããã¹ããæååç³»ãã¹ããªã®ã§Test::Moreã®isã¨ãlikeã¨åããããªãã®ãTest::Warnã«ã¯ããã¾ãã #!/usr/bin/perl use strict; use warnings; use Test::More tests => 8; use Test::Warn; sub add_positives { my ($l, $r) = @_; warn "first argument ($l) was negative" if $l < 0; warn "second argument ($r) was negative" if $r < 0; return $l + $r; } warning
Test::Moreã§ãã¹ããTODOæ±ãã«ãããã¨ãåºæ¥ã¾ããã©ããããã¨ãã¨ããã¨ã testèªä½ã¯æ®éã«è¡ãã 失æãã¦ãããã¯TODOæ±ãã¨ãã¦ããã¼ã¿ã«ã®çµæã§ã¯æåãããã¨ã«ããã ã¨ããæãã ããã¤ãã®æ©è½ãæªå®è£ ã®ï¼ã¨ãããã»ã¨ãã©ãªã«ããã¦ãªãï¼ã·ã£ã¼ãã³ã¢ã¸ã¥ã¼ã«ï¼æ£ããã¯mechanical pencilãã§ãé·ãããå«ï¼ãããã¨ãã¾ãã package Pencil; use strict; use warnings; sub new { my $class = shift; return bless {}, $class; } sub leads { # TODO } sub supply_leads { # TODO } 1; #!/usr/bin/perl use strict; use warnings; use Test::More tests => 3
æ°æ¥éã空ãããã©ãPerlTestingåéã æ¡ä»¶ã«åããã¦ãã¹ããã¹ããããããå ´åããã£ãããã¾ãããã¨ãã°ã ä¾åã¢ã¸ã¥ã¼ã«ãã¤ã³ã¹ãã¼ã«ããã¦ãªãã£ããã¹ããã ã¨ããOSã ã£ããã¹ããã ãããã¯ã¼ã¯ã«ã¤ãªãã£ã¦ãªãã£ããã¹ããã ãªã©ãªã©ãããããæã¯skipé¢æ°ã使ãã¾ãã ãã¹ãããã¢ã¸ã¥ã¼ã«ã package Phrase; use strict; use warnings; sub new { my ($class, $text) = @_; bless \$text, $class; } sub text { my $self = shift; return $$self; } sub as_dutch { my $self = shift; require WWW::Babelfish; return WWW::Babelfish->new->translate
PerlTestingã®Chapter1æçµæ¦ã§ãã ok()ã£ã¦åºæ¬ä¸ã®åºæ¬ã§ãããã£ã±ãä¸ä¾¿ã§ããããããªãã¹ããããã®ã«æ¡ä»¶ã1åã«ç¸®ããªãã¨ãããªããã§ããã®ãã§ããTest::Moreã«ã¯ok()ã®ä»£ããã«ä½¿ããã¤ã±ã¦ãé¢æ°ãããã¤ãããã¾ãã ã¾ãã¯ãã¹ãã³ã¼ãã #!/usr/bin/perl use strict; use warnings; use Test::More tests => 4; use_ok('Greeter') or exit; my $greeter = Greeter->new(name => 'Emily', age => 21); isa_ok($greeter, 'Greeter'); is($greeter->age(), 21, 'age() should return age for object'); like($greeter->gr
Chapter1ã®å¾åæ¦ã¯ãTest::Moreã Perl Testing: A Developer's Notebook (Developers Notebook) Test::Moreã¯Test::Simpleã®ã¹ã¼ãã¼ã»ããã§å®å ¨ã«ç½®ãæãã¦ä½¿ã£ã¦OKãã¢ã¸ã¥ã¼ã«ããã ããèªã¿è¾¼ãããã©ãããªã©ã®ãã¹ãé¢æ°ãå«ãããããªæ©è½ããã§ããã¨ã®ãã¨ã§ãã æ©éã package AnalyzeSentence; use strict; use warnings; use base qw/Exporter/; our $WORD_SEPARATOR = qr/\s+/; our @EXPORT_OK = qw($WORD_SEPARATOR count_words words); sub words { my $sentence = shift; return split $WORD_SE
ãã¹ãæ¬ãå±ããã®ã§ãã¹ãããã¦ã¿ããã¹ããåå¼·æ¥è¨ã®å ¬éãã¹ããããã¦ã Perl Testing: A Developer's Notebook (Developers Notebook) Test::Simpleã¯ããã®ä¸æ© #!/usr/bin/perl use strict; use warnings; use Test::Simple tests => 1; sub hello_world { return "Hello, world!"; } ok(hello_world() eq "Hello, world!");
IEerBug 㯠Internet Explorer 6.0 㨠FireFox 1.5 ã§åã JavaScript ç¨ã®ãããã° ã³ã³ã½ã¼ã«ã§ãã FireBug ã¨åã console.log()ãconsole.debug() ãªã©ã®é¢æ°ã使ããããã«ãªããããFireFox 㨠IE ã®ä¸¡æ¹ã§ãããã°ããå ´åã«ä¾¿å©ã§ããã³ã³ã½ã¼ã«ã«åºåãããªãã¸ã§ã¯ãããDOM ã¤ã³ã¹ãã¯ã¿ãå©ç¨ãã¦è§£æãããã¨ãå¯è½ã§ãã 使ãæ¹ ieerbug.zip ããã¦ã³ãã¼ãããä¸èº«ãã¢ããªã±ã¼ã·ã§ã³ã®ãã£ã¬ã¯ããªã«é ç½®ãã¾ããIEerBug ç¨ã®ãã£ã¬ã¯ããªãä½æãã¦ããã®ä¸ã«é ç½®ãã¦ãåé¡ããã¾ããã HTML ã®ä¸ã§æ¬¡ã®ããã«ã㦠ieerbug.js ãèªã¿è¾¼ã¿ã¾ãã
CGI::Application::Plugin::Redirect CGI::Application::Plugin::Redirectãåºã¦ãã¾ãããååããæ³åããéããredirectã®å¦çãè¡ã£ã¦ããããã®ã§ãã package MyApp; use base qw(CGI::Application); use CGI::Application::Plugin::Redirect; sub start { my $self = shift; return $self->redirect('http://www.example.com/'); } ãªãã¤ã¬ã¯ãã®ç¸å¯¾â絶対ã¸ã®å¤æã¯ãµãã¼ããã¦ããªãã®ã§ãã¾ãå½¹ã«ç«ã¡ããããªãããªãã¨æã£ã¦ã¾ããããã¨ãããã©ã£ãããï¼ã¤é¢ç½ãæ©è½ãããã¾ããã cgiapp_prerunã§ã®ãªãã¤ã¬ã¯ãã package MyApp; use b
CGI::Application - åå©ç¨å¯è½ãªWEBã¢ããªã±ã¼ã·ã§ã³ãæ§ç¯ããããã®ãã¬ã¼ã ã¯ã¼ã¯ NAME SYNOPSIS INTRODUCTION USAGE EXAMPLE ABSTRACT DESCRIPTION Instance Script Methods Sub-classing and Override Methods Application Module Methods Testing PLUG-INS Existing plug-ins Writing Plug-ins Writing Advanced Plug-ins - Using callbacks COMMUNITY SEE ALSO AUTHOR CREDITS LICENSE Page Top NAME CGI::Application - åå©ç¨å¯è½ãªWEBã¢ããªã±ã¼ã·ã§ã³ãæ§ç¯ããããã®ãã¬ã¼
ãã1ã¶æã»ã©(ãªãããªãâ¦)ãã¡ã¾ã¡ã¾ã¨åå¼·ãã¦ããCGI::Application::Dispatchã«ã¤ãã¦ã使ãæ¹ãããªãã¦æ¥ãã®ã§ãããããã§ã²ã¨ã¾ã¨ãã§ãã ä½ããã¢ã¸ã¥ã¼ã«ï¼ ãã®åå¼·ä¸ã¨ã³ããªã¼ã®ï¼åç®ã§ãæ¸ãã¾ããããCGI::Applicationãå©ç¨ããã¢ããªã§å¿ è¦ã«ãªãã¤ã³ã¹ã¿ã³ã¹CGIã¯ä½ããã«ãURI(PATH_INFO)ããå®è¡ããã¢ã¸ã¥ã¼ã«ã¨Runã¢ã¼ãã決å®ãããã¨ããã¢ã¸ã¥ã¼ã«ã§ããnewãã¦runããã ãã®ã¤ã³ã¹ã¿ã³ã¹CGIãªããæ¯åæ¸ããããªãããã¨ããã®ãã¢ã¸ã¥ã¼ã«ä½è ããã®æå³ã®ããã§ã(PODã«ãããã¾ã)ã URIã¯ãããªã CGI::Application::Dispatchã使ã£ãå ´åã®URIã¯ã ã¨ãªãã¾ãã CGI::Applicationãç¶æ¿ããMyApp::Indexã¨ããã¢ã¸ã¥ã¼ã«ãä½ã£ãå ´åããããå®è¡ããããã®URIãæ¯
PATH_INFOã¨ç¸å¯¾ãã¹ï¼ãªã³ã¯ï¼ ãã¾ãã®ããã°ããã®ã¨ã³ããªã¼CGI::Application::Dispatchåå¼·ä¸ãã®ï¼ã§ ã§ããCGI::Application::Dispatchã使ãå ´åã¯ãPATH_INFOå½¢å¼ãå©ç¨ãããã¨ãåæãªãããURIãå ¨é¨ã http://example.com/dispatch.cgi/ã¢ã¸ã¥ã¼ã«å/Runã¢ã¼ã ãªæãã«ãªãã¾ããé層ãå ¨é¨ä¸ç·ã§ãããããªãã¨ãä»ã¾ã§ã®ãURIã®é層=ãã¡ã¤ã«ã®ããããã¨ããæ¹æ³ã§ãã³ãã¬ã¼ãã並ã¹ã¦ããªã³ã¯URIãç¸å¯¾ãã¹ã§æ¸ããã¨ããã®ãä¸ä¾¿ã«ãªãã¾ãããURIãã³ãã³ééããâ¦ã ããã¯åãæ©ã¿ã¾ããããã¨ã§PATHãå¤æ´ã«ãªããããªã¨ãã«ã¯çµ¶å¯¾ãã¹ã»ãªã³ã¯ã¯ä½¿ãã¥ããã§ãããDreamweaverã§ãä½æãã«ããããªã®ã§æè¿ä½ã£ãCGI::Application::Dispatchãå©ç¨ããã¢ã
ã©ã³ãã³ã°
ãç¥ãã
ã©ã³ãã³ã°
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}