トップページphp
29コメント4KB

Perlでよく使うモノを並べてみよう

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん02/12/26 10:59ID:7gPWZ3Cy
例)CGIデコード

# 環境変数取得
if ($ENV{'REQUEST_METHOD'} eq "POST"){
read(STDIN, $query, $ENV{'CONTENT_LENGTH'});
} else {
$query = $ENV{'QUERY_STRING'};
}

# デコード
@args = split(/&/, $query);
foreach $i (@args) {
($name, $val) = split(/=/, $i);
$val =~ tr/+/ /;
$val =~ s/%([0-9a-fA-F][0-9a-fA-F])/pack('C', hex($1))/eg;
$cgi{$name} = $val;
}


こんな感じでよく使うものを出していきましょう。
0002nobodyさん02/12/26 11:06ID:???
             立
         初  て
         め  て
         て  み
      駄  わ  て
      ス.  か
      レ   る
      か
   圖  な


  Λ_Λ
 ( ´∀`)
 (    )
0003nobodyさん02/12/26 11:19ID:DQIeVDZ8
質問です。
ただCGIでHTMLを読み込んで表示させたいのですがどうすればよいでつか?
本当にただindex.htmを外から読み込んでそのまま表示させるだけです。
0004nobodyさん02/12/26 11:54ID:???
>>3

$_ = `cat ./mona.html`;
print "$_";
exit;
0005nobodyさん02/12/26 14:17ID:???
使うもの?

ああ、秀丸。
0006nobodyさん02/12/26 14:32ID:???
俺はパソコンをよく使うよ。
0007nobodyさん02/12/26 15:52ID:ODLR2vri
>>1のは、use strict;のときちゃんと動かないし、修正。
my $query;
if ($ENV{REQUEST_METHOD} eq "POST"){
 read(STDIN, $query, $ENV{CONTENT_LENGTH});
} else {
 $query = $ENV{QUERY_STRING};
}

my @args = split(/&/, $query);
my %cgi; #良くないかも。use var ...
foreach (@args) {
 my ($name, $val) = split(/=/);
 $val =~ tr/+/ /;
 $var =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/pack('H2', $1)/eg;
 $cgi{$name} = $val;
}
0008nobodyさん02/12/26 16:12ID:???
use CGI;
0009nobodyさん02/12/26 16:33ID:???
#!/usr/bin/perl
0010nobodyさん02/12/26 16:40ID:???
perl -cw
0011nobodyさん02/12/26 17:55ID:???
use strict;
0012nobodyさん02/12/26 18:32ID:FAw+iTTP
exit;
0013nobodyさん02/12/26 19:13ID:ySTy6JdW
# コメント(糞スレ)
0014nobodyさん02/12/26 19:32ID:ODLR2vri
my %param = @_;
0015nobodyさん02/12/26 19:36ID:???
1 ? 1 : 0
0016nobodyさん02/12/26 19:38ID:???
%tmp;
@tmp{@label} = split(/<>/, $line);
return \%tmp;
0017nobodyさん02/12/26 19:41ID:???
$line =~ s/\x0D?\x0A?$//;
0018nobodyさん02/12/26 19:42ID:???
while (defined(my $line = <IN>)) {
0019nobodyさん02/12/26 19:45ID:???
>>16
my %tmp;で、、サブルーチンとかにして使う・・
0020nobodyさん02/12/26 19:50ID:???
>>15
本当によく使うのかと(略)
0021名無し02/12/26 20:02ID:???
use File::Find;
しかし、遅いよね。
便利だけど。
0022Jack ◆JkImxxVPHA 02/12/26 20:31ID:7gPWZ3Cy
sub tag_to_tex {
$_[0] =~ s/&/&/g;
$_[0] =~ s/\"/"/g;
$_[0] =~ s/>/>/g;
$_[0] =~ s/</</g;
$_[0] =~ s/\n/<BR>/g;
return ($_[0]);
}

タグを文字に。
0023nobodyさん02/12/26 20:41ID:???
"はエスケープしなくてもいい
0024nobodyさん02/12/26 20:43ID:???
until (0) { redo } continue { next }
0025nobodyさん02/12/26 21:54ID:???
>>23
ふぅん、普通にエラーが出るが。
君は局所に注目しすぎる癖があるね。
0026nobodyさん02/12/26 22:36ID:ODLR2vri
>>25
正規表現中でのダブルクオートには何も意味がない。から、エスケープする必要はない。

$a = '"' と同じような考え方。
0027nobodyさん02/12/26 23:41ID:???
use CGI::Carp 'fatalsToBrowser';
use Data::Dumper;
0028nobodyさん02/12/27 05:49ID:+69413BS
require 'jcode.pl';
0029山崎渉03/01/15 13:40ID:???
(^^)
■ このスレッドは過去ログ倉庫に格納されています