AWS-Lambda
view release on metacpan or search on metacpan
examples/cgi/WwwCounter/wwwcount.cgi view on Meta::CPAN
print OUT $_;
}
close(IN);
} else {
print OUT "Access = $access_count\n";
}
close(OUT);
}
#
# ã«ã¦ã³ãã¢ãããããå¦ãã夿ãã
# ãã§ã«åã¢ãã¬ã¹ããã®ã¢ã¯ã»ã¹ãããã°ã«ã¦ã³ãã¢ããããªã
#
sub checkCountup {
my($do_countup) = 1;
local(*IN);
if ($g_address_check) {
open(IN, "$g_file_access");
while (<IN>) {
if ($_ eq "ADDR = [ $ENV{'REMOTE_ADDR'} ]\n") {
$do_countup = 0;
last;
}
}
close(IN);
}
return $do_countup;
}
#
# CGIã¹ã¯ãªããã®çµæã¨ãã¦ã«ã¦ã³ã¿ã¼ãæ¸ãåºã
#
sub outputCounter {
my($count) = @_;
my($count_str, @files, $size, $n, $buf);
# ã«ã¦ã³ã¿ã¼æåå(ä¾:000123)ãå¾ã
if ($g_figure != 0) {
$count_str = sprintf(sprintf("%%0%dld", $g_figure), $count);
} else {
$count_str = sprintf("%ld", $count);
}
# ããã¹ãã¢ã¼ã
if ($g_mode eq "text") {
printf("Content-type: text/html\n");
printf("\n");
printf("$count_str\n");
# GIFã¢ã¼ã
} elsif ($g_mode eq "gif") {
printf("Content-type: image/gif\n");
printf("\n");
@files = ();
for (my $i = 0; $i < length($count_str); $i++) {
$n = substr($count_str, $i, 1);
push(@files, "$n.gif");
}
require "./gifcat.pl";
binmode(STDOUT);
print gifcat'gifcat(@files);
# é ãã«ã¦ã³ã¿ã¼ã¢ã¼ã
} elsif ($g_mode eq "hide") {
printf("Content-type: image/gif\n");
printf("\n");
$size = -s $g_gif_file;
open(IN, $g_gif_file);
binmode(IN);
binmode(STDOUT);
read(IN, $buf, $size);
print $buf;
close(IN);
}
}
#
# ããã¯ãå¾ã
#
sub doLock {
my($mtime);
if ($g_lock_flag) {
for (my $i = 1; $i <= 6; $i++) {
if (mkdir("$g_file_lock", 0755)) {
# ããã¯æåãæ¬¡ã®å¦çã¸ã
last;
} elsif ($i == 1) {
# 10å以ä¸å¤ãããã¯ãã¡ã¤ã«ã¯åé¤ããã
($mtime) = (stat($g_file_lock))[9];
if ($mtime < time() - 600) {
rmdir($g_file_lock);
}
} elsif ($i < 6) {
# ããã¯å¤±æã1ç§å¾
ã£ã¦åãã©ã¤ã
sleep(1);
} else {
# ä½åº¦ãã£ã¦ãããã¯å¤±æããããããã
exit(1);
}
}
}
# éä¸ã§çµäºãã¦ãããã¯ãã¡ã¤ã«ãæ®ããªãããã«ãã
sub sigexit { rmdir($g_file_lock); exit(0); }
$SIG{'PIPE'} = $SIG{'INT'} = $SIG{'HUP'} = $SIG{'QUIT'} = $SIG{'TERM'} = "sigexit";
}
#
# ããã¯ãéæ¾ãã
#
sub unlockLock {
if ($g_lock_flag) {
rmdir($g_file_lock);
}
}
#
# CGIã使ç¨ã§ããããã¹ããè¡ãã
#
sub test {
print "Content-type: text/html\n";
print "\n";
print "<!doctype html>\n";
print "<html>\n";
print "<head>\n";
print "<meta charset='utf-8'>\n";
print "<title>Test</title>\n";
print "</head>\n";
print "<body>\n";
( run in 0.506 second using v1.01-cache-2.11-cpan-99c4e6809bf )