perl

Perlでmyとlocalの違い

ローカルにしたけりゃmy使え。 ネタ元 http://chaichan.lolipop.jp/perlnote/perlnote2007-05-302.htm

PerlのCGIテスト時の定番

これいれないでprintするとエラーになるよ print "Content-type: text/html\n\n\n"; ネタ元 http://www.tohoho-web.com/wwwcgi7.htm

perlのcgiでリダイレクト

シンプルに print "Location: リダイレクトしたいURL\n\n"; exit(0); ネタ元 https://www.futomi.com/lecture/ohter/redirect.html

perlの乱数がrand()

引数で最大値指定。 引数がないなら1と同じ。 my $num = rand();返り値は小数だよ。 ネタ元 https://www.javadrive.jp/perlfunc/math/index8.html

perlでshift-jisの文字列をutf-8に変換してからのURLエンコード

use Encode; .... # Shift_JISバイト文字列を内部文字列に変換 からの 内部文字列をUTF-8バイト文字列に変換 $fromAddress = decode('Shift_JIS', $fromAddress); $from_encode = encode('UTF-8', $fromAddress); $from_encode =~ s/([^ 0-9a-zA-Z])/"%".uc(…

perlでバッククォート演算子使うと 別プロセスを実行し標準出力を取得できる

# バッククォート演算子 my $output = `$cmd`; ネタ元 http://d.hatena.ne.jp/perlcodesample/20180201/1517493582

perlでCSVファイル簡単読み込み

open(IN, 'customer_data.csv'); while(<IN>){ chomp; my @d = split(/,/, $_); # ------------------------ # ここに、集計処理を書く # ------------------------ } close(IN);行をsplitした結果 $d[0] => 02547 $d[1] => 佐藤大輔 $d[2] => 25 $d[3] => 北海</in>…

pelのCGIでパラメータを受け取る方法

use CGI; my $q = CGI->new();/action.cgi?apple=red&banana=yellow&peach=pinkだと print $q->param('apple'), "\n"; # red print $q->param('banana'), "\n"; # yellow print $q->param('peach'), "\n"; # pinkという感じになる ネタ元 http://d.hatena.ne…

perlでIPアドレス取得・表示

$ENV{'REMOTE_ADDR'}ネタ元 http://webings.net/perl/ip/

perlでファイル出力(追記型)

open(FH,">> data.txt"); print FH "DEF"; close(FH);ネタ元 http://www.kent-web.com/perl/chap6.html

ShiftJisで全角数字から半角数字への変換

[Perl]試してないけどメモ。 $twoBytesnum = “[\x4F-\x58]“; $oneBytenum = “[\x30-\x39]“; if($str =~ /[\x82]($twoBytesnum)/) { $str =~ s/(?:[\x82]($twoBytesnum))/pack(H2,sprintf(“%X”,ord($1)-31))/eg; } ネタ元 [http://memo.nyahun.net/?p=78:titl…

CGIが動かないときにチェックすること

パーミッションOK? 755になってる? perlのパス合ってる? #! /usr/bin/perl #!/usr/local/bin/perl 文字コード合ってる? ASCIIモードで転送している? 全角スペースに注意! ネタ元 http://sagittarius.dip.jp/toshi/premature.php http://www.futomi.com…

日本語の文字化けする文字対策

2バイト目が「\」になる文字が化けます。 ― ソ ? 表 予 能 申 十 構 貼 暴 欺 圭 噂 蚕 饅 箪 禄 兔 彌なので\でエスケープします。 ソ\フトあと2バイト目が@の文字でも化けます。対策方法は以下参照。ネタ元 http://cgi-design.net/cont/study/study.cgi?mo…

HTMLタグを取り除く

正規表現でシンプルに。 $source =~ s/<.*?>//g; ネタ元 http://www.nishishi.com/perltips/string4.html

半角カナを全角カナに変換する

jcode.plもしくはjcode.pmというモジュールを使うと良いらしいキーワードはh2z

文字列の連結は .(ピリオド)

+(プラス)じゃないよ。 他にも素敵な文字列の操作機能があるね。すぐ忘れちゃうのでメモ。 文字列の連結

動的にデータを作って、任意のファイル名でダウンロードさせる

print "Content-Disposition: attachment;filename=sample.csv\n";とやるとOK。以下サンプル print "Content-type: text/x-hdml;charset=Shift_JIS\n"; print "Content-Disposition: attachment;filename=sample.csv\n"; print "\n"; for ($i=0; $i<=10; $i+…

CGIで特定の文字(表・予・申・能など)が文字化けする

SHIFT-JISでは文字化けする文字があるので、EUC-JPで書くのが無難とのこと。そうもいかない事情があるなら print "データファイルがオープンできません。<BR>".'申し訳ございませんが復旧までお待ちください。'."<BR>\n";こんな感じで文字化けする文字の部分だけ'(シ…

couldn't create child process: 720003とメッセージが出てcgiが動かない人へ

windowsでapatch/active perlな人向け。いろいろ原因はあると思いますが、cgiコードの一行目を #!/usr/bin/perlを #!/perl/bin/perlにしてみたら動くんじゃないでしょうか。

フォームで入力されたパラメータを取得する

test.html <html> <head> <body> <form action="cgi-bin/test.cgi"> <table> <tr> <td>名前:</td> <td><input type="text" size="20" name="name"></td> </tr> <tr> <td>メールアドレス</td> <td><input type="text" size="20" name="mail"></td> </tr> <tr> <td colspan="2" align="center"> <input type="submit" value="送信"> </td></tr></table></form></body></head></html>

DOS窓からGETで引数を受け取るcgiをテストするときに、引数を指定する方法

cgiの #!/usr/bin/perl の下あたりに unless ($ENV{REQUEST_METHOD}) { $ENV{REQUEST_METHOD}='GET'; $ENV{QUERY_STRING}=shift; }などと書いておき、 C:\> perl abc.cgi param=123&id=abc と引き数に指定してやればQUERY_STRINGとして渡されます。 参照 コ…

AppleScriptとPerlの連係の仕方

perlからの返り値の取り方とかAppleScriptとPerlの連係

Perlで文字列の切り出しをするには?

相変わらずAppleScript関連でperl調べ中。"MondayThursdayFriday"という文字列の〜間、つまり"Thursday"を取り出したい場合は・・・ echo "MondayThursdayFriday" | perl -pe 'print if s/.*(.*).*/$1/g' ふむふむ 参考 Perlの正規表現で文字の抽出 Perlで文…

正規表現を調べてる

set regexp to "s/.*(.*).*/$1/g" as Unicode text perl -Mutf8 -e 'utf8::decode($ARGV[0]); print $ARGV[0] if($ARGV[0] =~ " & regexp & ")' $1,$2,$3,.. 正規表現の(括弧)内にマッチしたものが格納されます。 -e この部分がスクリプトであることを示すオ…