トップページ⇒php
1001コメント331KB

【Perl】初心者コーナー Part18

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん02/11/20 22:04ID:???
いらっしゃーい、Perlの「コーディング」で困ってる人のスレです。

1:自分はこう言う事がしたい。
2:それでこんな風にやってみたが・・・
3:それだとこんなエラーが出て上手く行かなかった。

1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。

CGIだけど、なんか質問ある? Part 8
http://pc.2ch.net/test/read.cgi/php/1032704121/
参考書籍の話題は【Perl,CGI】参考書籍 第三版
http://pc.2ch.net/test/read.cgi/php/1030209573/
その他の雑多な話題は、【CGIに依存しないPerlの話題一般/Part2】
http://pc.2ch.net/test/read.cgi/php/1030548610/
スクリプトの改造依頼は 【 スクリプト改造工房 PART 5 】
http://pc.2ch.net/test/read.cgi/php/1028193595/

過去ログ、その他の役立ち情報は>>2-10あたりを見よう。
0554nobodyさん02/12/20 00:26ID:???
grep {chomp} <text>;
0555nobodyさん02/12/20 00:38ID:Av7thQVn
unixパスワードを使用して
そのサーバ上にあるアカウントとそのアカウントパスワードで
認証させるにはどうすればいいんでしょうか?
0556nobodyさん02/12/20 00:40ID:Av7thQVn
あ 板違いでしたね・・すんません
0557nobodyさん02/12/20 00:47ID:???
perlで掲示板を作っているのですが、

http://www.hoge.co.jp/index.html //comment

のように投稿者が書いた場合、//commentの部分の色を変えたいの
ですが、どのようにしたらいいのでしょうか?
正規表現を使って、取り出した文字列をタグで挟んだ形にしてやるという
ことはわかるんですが、 //commentの部分の取り出し方がわかりません。
お教え願えないでしょうか。お願い致します。
0558nobodyさん02/12/20 01:03ID:???
$ echo http://www.example.com/index.html //comment |
perl -pe 's{\s(//.*$)}{ <tag>$1</tag>}'
http://www.example.com/index.html <tag>//comment</tag>

で、どうでしょ。
0559nobodyさん02/12/20 01:03ID:iYZ6MU3U
ろくな例ではないけど
$str =~ s|([\s]+)(//[\S]+)|$1<tag>$2</tag>|g;
$str =~ s|^(//[\S]+)|<tag>$1</tag>|g;
こんな感じかしら。
正規表現苦手。
0560nobodyさん02/12/20 01:42ID:4aAUDwG2
>>558さん >>559さん
レスありがとうございます。
んー、どうもうまくいかないです。

$value =~ s~([\s]+)(//[\S]+)~$1<span class="comment">$2</span>~isg;
$value =~ s~^(//[\S]+)~<span class ="comment">$1</span>~isg;

と記述してみましたが変化なしです。
どうもとりだせてないようです。
^(//[\S]+)の部分を書き換えると部分的には色が変わるのでタグはあってるんですが。
どこに問題ありでしょうか?
0561nobodyさん02/12/20 02:00ID:p0zZgi4w
$value =~ s|([^:])(//[\S]+)|$1<tag>$2</tag>|g;

0562nobodyさん02/12/20 02:11ID:???
こんなのはどぉ?
$value =~ s/(?<!http:)(\/\/.+)$/<a>$1<\/a>/;
0563nobodyさん02/12/20 02:11ID:4aAUDwG2
>>561
ありがとうございます〜。
できましたー。これで今日はゆっくり寝られます。

>>558さん >>559さん >>561さん
ご協力ありがとうございました。
0564nobodyさん02/12/20 02:18ID:4aAUDwG2
>>562
レスありがとうございます。
なるほど、こういうふうにすればいいんですね。
バッチリです。勉強になりました。
ありがとうございました^^。
056551902/12/20 08:51ID:???
>>520
ありがとうございました。
遅れてスマソ
0566nobodyさん02/12/20 11:52ID:???
perlのスクリプトで、他のホスト(ローカル上)にあるファイルの有無を確認する
スクリプトを組みたいのですが、出来る限り動作の軽い物にしたいと思っています。

単純に
if(-e $ARGV[0]){
print "ok";
}else{
print "no";
}
のようにしようと思っていたのですが、-eでは他のホストのものは
調べられないそうですね。
他のホストを調べられ、かつ軽くする方法はありますか?
056756602/12/20 11:56ID:???
すいません、質問追記。

それをイントラのweb上で、formにファイル名入れて確認させる形にするつもりです。
ので、実際には$ADGV[0]とかにはならないと思います。
0568nobodyさん02/12/20 12:21ID:???
>>567
404 Not Found
ってレスポンスを拾ってくればよいこと。(HTTPのばやい)
0569nobodyさん02/12/20 12:24ID:???
>>566
他のホストでhttpサーバとかFTPサーバが動いていてそのファイルにアクセスできるなら可能。
0570nobodyさん02/12/20 12:51ID:kZj4R1Az
連想配列から指定した要素を取り除くにはどうすればいいでしょうか?
添え字で指定したいのですが、
ループ処理で何番目かを自分で取得するしかないんでしょうか
0571nobodyさん02/12/20 13:13ID:???
聞いてください!!

まえにココで、質問したのですが、
いま、過去ログに行っていて読めません。

もう一回質問します。


ディレクトリにある全てのファイルから
最後の3行を取り除くのにはどうすればいいでしょうか?

始めの3行ならば
% perl -ne 'print unless 1..3;' *.txt

でいいはずです。
057256602/12/20 13:31ID:???
>>569
逆に言うと、動いてなきゃ出来ないって事ですか…
connectとか使うしかないんですかね。

どもでした〜。
0573nobodyさん02/12/20 14:01ID:???
>>570
delete(key);

内部ではループで回してると思いますが。
0574nobodyさん02/12/20 14:14ID:???
とりあえず、エレガントな解が出てくるまでは、

ファイル読み込み
N=行数カウント
1..(N-3)まで出力

こんなスクリプトで我慢汁!
0575nobodyさん02/12/20 14:34ID:???
聞いて聞いて!!

谷口 腕太 タニグチ ワンタ 1977年生まれ
を
谷口 腕太,タニグチ ワンタ,1977年生まれ
に置換したいです!!!

"2つめの全角スペース"→","
"4つめの全角スペース"→","
という風に置換するにはどうすればいいのでしょうか?


そんなことできますか??


057657002/12/20 14:51ID:kZj4R1Az
>>573
ありがとん

ループでやってるとさすがにコードが長くなるんで
助かったわ〜
0577nobodyさん02/12/20 15:01ID:N/iHD9mS
my $test="入力テスト";
$test = jcode($test)->jis;
print jcode($test)->mime_encode;

はできるのに、

my $test="入力テスト";
print jcode($test)->jis->mime_encode;

すると、
Can't locate object method "jis" via package "NO%F%9%H"
って怒られる。

なぜ?
0578nobodyさん02/12/20 15:05ID:???
>>577
jcode($test)->jis の返値はJcodeのオブジェクトじゃないもんで。
0579nobodyさん02/12/20 17:03ID:AHOklkZ9
<select name="\$box">
<option>
<option selected value=$data[1]>$out[0]
<option value="0">yes
<option value="1">no
     <option value="2">ok

</select>

$data[1]には0,1,2が入っていて
$out[0]にはyes,no,ok が入っています。

これを画面表示させると(仮に$data[1]=1,$out[0]=noとする)
______
|no | ←当然ながらここに<option selected value=$data[1]>$out[0]
|yes |
|no |
|ok |
~~~~~~

こんな感じで画面にでてしまうんですが。

これをfor文でまわして同じヤツは表示しないで
($data[1]=1,$out[0]=no)のときだったらselectedをつけて表示させる

______
|yes |
|no |←ここに<option selected value=$data[1]>$out[0]
|ok |
~~~~~~

こんな感じでやるにはどうしたらいいんでしょうか?
0580nobodyさん02/12/20 17:19ID:???
>>579
$data[1]に0,1,2ガハウィッテイウィルノカ?
ヲマエハバカカ?
058157902/12/20 17:26ID:AHOklkZ9
$data[1]に0,1,2のどれか1つが入っている。
ってことです。
あと
$out[0]にyes,no,ok のどれか1つが入っている。
ってことです。
書き方がおかしくてすみません
0582nobodyさん02/12/20 17:29ID:???
あるDBからデータを呼び出して、それらを条件によって分類、
それをテキストファイルとして出力するスクリプトを組んだところ、
コマンドラインから実行すると問題なく動くのですが、
phpなどから呼び出すと、out of memoryとなってしまいます。
止まるは常に同じところなのですが、一体何が原因なのでしょうか?

phpからは
system ("hogehoge.pl $a $b $c");
というように動かしています。
$a等は、formのtype=textで指定するようになっていて、
pl側で表示させて、問題なく渡せていることは確認できたのですが・・・
0583nobodyさん02/12/20 17:31ID:???
>>579
どう見てもPerlに見えないけど・・・
スマートじゃないがこんな感じ

@chknum = (0,1,2);
@chkstr = ('yes','no','ok');

$data[1] = 2;
$out[0] = "no";

$chkflg = 1;
for($i = 0 ; $i < 3 ; $i++) {
if($chknum[$i] == $data[1] && $chkstr[$i] eq $out[0]) {
$selected = "selected";
$chkflg = 0;
}
else {
$selected = "";
}
$outstr[$i] = "<option " . $selected . " value=" . $chknum[$i] . ">" . $chkstr[$i] . "\n";
}
if($chkflg) {
print "<option " . $selected . " value=" . $data[1] . ">" . $out[0] . "\n";
}
for($i = 0 ; $i < 3 ; $i++) {
print $outstr[$i];
}

ちなみに難しい処理は一つも無い・・・聞く前に自分で考えてみたのか?
0584nobodyさん02/12/20 18:04ID:???
perlでBasic認証って出来ますか?
具体的には
/home/user1/user.pass に htpasswdで暗号化したのをアップしてもらって
user1で認証しようとした場合
/home/user1/user.pass をパスワードファイルに読み込みたいのですが...
0585bloom02/12/20 18:18ID:V4mJQRW4

http://www.agemasukudasai.com/bloom/
0586nobodyさん02/12/20 19:00ID:???
>>584
とりあえず「BASIC認証」「Perl」でググルとかなり出てくるだが、それらを
調べてみたのか?
0587nobodyさん02/12/20 20:18ID:???
>>586
愚問だな。
058857902/12/20 20:35ID:AHOklkZ9
>>583
どうもありがとうございました。

私はIDにAHOと出るくらいアホなんで
こんなのもわからないんです。
058957902/12/20 20:41ID:AHOklkZ9
if($chkflg) {
print "<option " . $selected . " value=" . $data[1] . ">" . $out[0] . "\n";
}

あと、この部分は何のためにあるんですか?
0590nobodyさん02/12/20 20:54ID:Av7thQVn
setuidなperlプログラム作っているのですが
特定のディレクトリのサイズを取得するためにはどうすればいいんでしょうか?
unixプログラムならduで一発なんですが
setuidなもんで外部プログラムがうまく動かないっス
0591nobodyさん02/12/20 21:00ID:mZ5RE2AI
すみません。。
>>540
よろしくお願いします、、
0592nobodyさん02/12/20 21:09ID:???
グラフといえば、GD使うのどう?
0593fg02/12/20 22:02ID:1ptZgAGx
The script did not produce proper HTTP headers. Please see the error log to see the detail of
the errors. Depending on the server configuration, you can also run this script under CGIWrap
debugging. Usually, either rename or link the script temporarily to a file which ends with .cgid
extension, or add a AddHandler cgi-script-debug .cgi line to your .htaccess file

このエラーはいったいなんでしょうか?
解読出来ませんでした。
imgboard v1.22 R6 です。
0594571 02/12/20 22:32ID:???























聞いて
059557102/12/20 22:32ID:???
我慢汁ですか?
0596nobodyさん02/12/20 22:41ID:???
>>595
@ARGVでも使えや。
0597nobodyさん02/12/20 22:46ID:???
>>>595
>@ARGVでも使えや

具体的には。
0598nobodyさん02/12/20 23:31ID:???
>>550
ごめん。勘違い。ちゃんと動く。悪かった。

槍田氏
0599nobodyさん02/12/20 23:34ID:???
>>593
別に難しいことじゃない。
エラーの内容自体は最初の.までだ。
後はシステムからのありがたいアドバイス。
辞書ひけ。ヴォケ。
060054602/12/20 23:40ID:???
>>553
冗長とか言って悪い。俺は心情的な富豪的プログラミングの信奉者なんで。

>>554の出したヒントにより、3行に集約できた。

open ( IN, 'file' );
%hash = grep { chomp } <IN>;
close ( IN );

ソースは短ければ短いほどいい。と思う。
060159502/12/21 00:05ID:???
>>597
> 具体的には。
そんなもんまでしらんがな。
それくらいわれが調べたれや。
060254602/12/21 00:14ID:???
まだやってんのとかつっこまれそうだが。

open ( IN, 'file' );
$eval = join ( '', <IN> );
close ( IN );
$eval = '%hash = qw('.$eval.');';
eval $eval;

これなら、途中で余分な改行が入ってたり、
改行のかわりにタブや半角スペースが入っていても問題なく読み込める。

ま、そゆことで。
0603nobodyさん02/12/21 00:20ID:???
>>575
$line = '谷口 腕太 タニグチ ワンタ 1977年生まれ';

@token = split / /, $line;
$line = "$token[0] $token[1]\,$token[2] $token[3]\,4token[4]";

print $line;
# 谷口 腕太,タニグチ ワンタ,1977年生まれ

これからは、こんな糞みたいなフォーマットで記録せずに、
最初からきっちり設計するんだぞ。
0604nobodyさん02/12/21 01:00ID:???
%hash = split(/\s+/,join('',<IN>));
0605nobodyさん02/12/21 09:46ID:???
>>575のようなヤシって
名前: 谷口, 腕太
フリガナ: タニグチ, ワンタ
生年: 1977
などというデータ仕込まれてパニックに陥るんだろうな。
0606nobodyさん02/12/21 09:57ID:94hGjCxm
すみません。
入力されたsjisの日本語をcryptしてパスワードを発行することに
何か問題があるのでしょうか。

文字によってサーバーエラーになるとか、
文字によって暗号化したものにセキュリティホールが発生するとか。
文字の長さは同じです。
0607nobodyさん02/12/21 10:47ID:???
気にするな
0608nobodyさん02/12/21 11:08ID:???
Proxyの255.255.255.255:80
のポート80の部分ってどうやってわかるんですか?
$ENV{hoge}でしょうか?
0609544=547=55002/12/21 11:21ID:???
>>608
普通は、ポートスキャンするしかない。と思う。

Via:に入ってたりするかもしれないけど・・・
0610nobodyさん02/12/21 11:31ID:QdhN2u6I
うわ。。変な名前が・・
0611お?02/12/21 12:00ID:SSXanoCB
初めまして。
SSIからCGIを呼び出したらクッキーの読み書きが出来ない問題もここでお聞きしてよろしいでしょうか?
単体では動くのですが、
execでCGIを呼び出すと引数が送れないので
include virtual="cgi-bin/xxx.cgi?yyy"
で呼んでます。
0612nobodyさん02/12/21 12:03ID:???
>>611
クッキーってどうやって発行してるか知ってる?
それが分かってればSSIでダメな理由はすぐ分かるはずだけど。
0613nobodyさん02/12/21 12:12ID:???
>>661
JavaScript
0614お?02/12/21 12:51ID:???
>>612
早速のレスありがとうございます。
色々WEBで検索をかけて無理そうだとは思ったのですが、スキルの高いこちらの方々なら何か力技でも無いだろうかと思いまして。
やはり無理ですか。ありがとうございました。

>>613
私は普段javaSc切ってますので出来るだけ使いたくないんです。
0615nobodyさん02/12/21 16:42ID:???
なにをインクルードして表示してるのかわからないけど
力技ていうなら<img>タグでクッキー発行する為だけの
イメージ吐いてみる。
0616お?02/12/21 22:34ID:???
>>615
ありがとうございます。
取りあえず別の方法で逃げました。

imgタグで呼び出すのも試したのですが、他の方のスクリプトを参照して真似ても、どうも正常に動かないので投げました。
まだまだ基本が出来てません。
ありがとうございました。
0617nobodyさん02/12/22 01:52ID:???
PerlでLWPモジュール使ってPOSTしたときにヘッダーを見る方法を教えてください。
0618lopper02/12/22 02:19ID:iYo7T5on
Encode モジュール分からん。
Encode::JP には、
$euc_jp = encode("euc-jp", $utf8);
と書いてあるが、utf8 の文字列からしか変換できんのか?shiftjis 変換は
from_to( "shiftjis", "euc-jp", $strings )
をすれば出来るが、変換元文字コードを指定しなければならん。自動で判別して
文字コードを変換するにはどうさればいいのか?
0619_gunzip ◆eiH/XdoCNg 02/12/22 03:54ID:???
>>618
use Encode::Guess;
---------------------------
#!/usr/bin/env perl

use strict;
use Encode;
use Encode::Guess qw[euc-jp shiftjis 7bit-jis];

my $jpstring = "日本語文字列";
my $utf8_string = decode("Guess", $jpstring);
my $encode = guess_encoding($jpstring, qw[euc-jp shiftjis 7bit-jis]);
0620lopper02/12/22 13:08ID:dY2TGdd7
やはりそうですか。Guess モジュールを使用しますよね。
Guess モジュールって $jpstring が短い文書の場合、判別つかずに
shiftjis or euc-jp
などと返してしまうのですよね。
たとえば上記を $jpstring = '結論' とすると判断がつかず
$encode の中身は 'shiftjis or euc-jp' が入ってきます。

やっぱりそういうものですか。
0621nobodyさん02/12/22 13:38ID:y/X/HeeK
今Lock関数を勉強しているのですが、その中に

if ((-M $lockdir) * 86400 > 600)

このような処理があります。
変数の前に-Mや-Eなどを見かけるのですが、検索が掛けられませんのでこれら-をつけた英字の総称(?)を教えてください。
0622nobodyさん02/12/22 13:51ID:???
>>621
ファイルテスト演算子
062362102/12/22 14:02ID:???
>>622
ありがとうございました。
検索を掛けても2件しかヒットしなかったですが、少し情報が入りましたのでなんとか自力で調べてみます。
ありがとうございました。
0624nobodyさん02/12/22 14:09ID:???
>>621
ファイルテスト・オペレータ
man perlfuncに一覧が有る
062562102/12/22 14:23ID:???
>>624
ファイルテキスト演算子で検索していますた・・・
色々詳しく解説しているサイトを見つけましたのでゆっくり勉強します。

本当にありがとうございました。
0626りゅう02/12/22 17:29ID:9RnyP9Mx
active perlを使ってcgi形式で
gifのグラフィックカウンターを作りたいんですけど。
全然、先が見えてきません。
どなたかご教授よろしくお願いします。
サイトを検索してもSSIのやつがほとんどなんです。
(´・ω・`)ショボーン
0627nobodyさん02/12/22 17:38ID:???
>>626
http://www.kent-web.com/count/index.html
0628nobodyさん02/12/22 18:11ID:???
perl 画像 連結
てキーワードで検索かけよう。
とほほさんのgifcat.pl使うと簡単
0629りゅう02/12/22 18:42ID:9RnyP9Mx
>>627
>>628

ありがとう!
0630nobodyさん02/12/22 19:57ID:???
windows環境でPerlを勉強しています。
本にあったサンプルを記述して動かしてみたのですが、
何も表示されません。シンタックスエラーはないですし、
記述ミスもなさそうなのですが、windows環境では
走らないのでしょうか。

<目指す結果>
[ABCABC]
[WindowWindow]

<ソース>
while (<DATA>) {
chomp;
/ (\w{3}) (\w{3}) / && ($1 eq $2) && print "[$&]\n";
/ (\w{6}) (\w{6}) / && ($1 eq $2) && print "[$&]\n";
}

__END__
ABCABCDEFG
X-WindowWindows
0631nobodyさん02/12/22 19:58ID:???
ActivePerl
HTTP-Lite
Time-HiRes
のインストール法がよくわからないんですけど
誰か教えてもらえませんか?
0632nobodyさん02/12/22 20:03ID:???
>>630
/(\w{3})(\w{3})/ && ($1 eq $2) && print "[$&]\n";
/(\w{6})(\w{6})/ && ($1 eq $2) && print "[$&]\n";

でしょ。/ /の中の空白には意味があるよ。
0633nobodyさん02/12/22 20:09ID:???
>632
あああああ、本当だ…。
もしあのままの記述だと、空白がないとマッチしないという事に
なるのですね。なるほど。
レスありがとうございます。とても勉強になりました。
0634nobodyさん02/12/22 20:30ID:???
>>631
http://pc.2ch.net/test/read.cgi/php/1032704121/917 マルチ
0635nobodyさん02/12/22 21:55ID:ICjO1mQt
system,execで実行したプロセスのプロセスIDを得ることは出来ますか?
kill INT => $pid;したいんですが。
0636yumi02/12/22 23:28ID:???
http://www5e.biglobe.ne.jp/~nanko-m/index.htm
0637nobodyさん02/12/23 00:08ID:???
>>635
systemは無理だろう。execならpidは代わらないからexecする前にpid取っとけ。
つーか、普通execする前にforkしたときに親の方で取っとく。
0638nobodyさん02/12/23 00:36ID:3vP0jNwS
スレッド型掲示板をFLASHでやりたいと思います。
「ActionScript+CGIプログラミング」(ソフト バンク)ではスレッド
を立てられないのですが、少なくともデザインだけはオリジナルに
したいです。どこかにいい資料はないでしょうか?
0639nobodyさん02/12/23 01:21ID:cOyl9Q7w
@compressedをgzipに渡して解凍させ、結果を受け取りたいのですが
どうもうまくいきません。

open GZIP, "| /usr/bin/gzip -d";
print GZIP @compressed;

こんな感じで実行してみましたが
結果が標準出力に出力されて、受け取れないです。
どうしたらいいですか?
0640nobodyさん02/12/23 01:27ID:???
open GZIP, "| /usr/bin/gzip -d >file";
0641nobodyさん02/12/23 01:38ID:cOyl9Q7w
>>640
レスありがとうございます。
なるほど、ファイルを経由させれば簡単ですね。
ですが、ファイルを経由しないで、解凍結果を受け取りたいのです。

@compress -> gzip -> file
file -> gzip @decompress
これは分かるのですが

@compress -> gzip -> @decompress
このように処理したいのです。もう一つお願いします。
064264002/12/23 02:06ID:???
うーん、調べたけどできないんじゃない?

パイプ "|" を使うと内部でフォークされて子プロセスの標準出力へ吐き出される

っぽい。。。
0643nobodyさん02/12/23 02:12ID:cOyl9Q7w
わざわざ、調べていただきありがとうございました。
0644(  _。。)_ バタ。 ◆eJlUd9keO2 02/12/23 10:28ID:???

単純な「フォームから送られてきたGETデータ」で躓いてます。

<FORM METHOD="GET" ACTION="ans_check.cgi" TARGET="main_disp">
<INPUT TYPE="HIDDEN" NAME="question" VALUE="001">
Ans. <INPUT TYPE="TEXT" NAME="ans">番
<INPUT TYPE="HIDDEN" NAME="dummy" VALUE="ABCDEFGHIJKLMN">
<INPUT TYPE="SUBMIT" VALUE="プレゼント開封">
</FORM>

とした時(Ansには1234と記入・・・) $ENV{'QUERY_STRING'}の中身が

question=001&ans=1234&dummy=ABCDEFGHIJKLM

と、末尾1文字(たまに2文字)抜けてる時点でなんかヤバそうなのですが、さらに
このデータに対して
@buff = split(/&/, $ENV{'QUERY_STRING'});
とした際のbuffの中身が

buff[0] = 'question=00'
buff[1] = 'and=123'
buff[2] = 'dummy=ABCDEFGHIJKL'

とさらに末尾が1文字消えてしまっているのです……。
可能性…何が考えられるでしょうか? お力添えお願い致します。
0645(  _。。)_ バタ。 ◆eJlUd9keO2 02/12/23 10:34ID:???
追記:
さらに buff を = で split すると・・・

($key,$val) = split(/=/); の結果
$key='questio' $val='00'
$key='an' $val='123'
$key='dumm' $val='ABCDEFGHIJKL'

と今度は分割の先頭($key)が一文字抜ける……ワケわかりません。 T−T
0646nobodyさん02/12/23 10:41ID:???
>644-645
ソースを示せ。
まずはそれからだ。

どうせchopかchompを入れちまってるだけだろう。
0647nobodyさん02/12/23 11:05ID:???
>>641
#!/usr/bin/perl
$pid = open P, '-|';
die unless(defined($pid));
if ($pid) {
このブロックで受け取る
while (<P>) {
print;
}
} else {
close P;
my $pid2 = open GZIP, '|-';
die unless(defined($pid));
if ($pid2) {
このブロックで書く
print GZIP <STDIN>;
} else {
exec 'gzip', '-d';
}
}

if ($pid) {
} else {
このブロックは
close P;
open GZIP, 'gzip -d' || die;
print GZIP <STDIN>;
でもよい。
}
0648(  _。。)_ バタ。 ◆eJlUd9keO2 02/12/23 11:12ID:???
>>646
Σ(゜д゜ ) PHPとちがって末尾1文字なんでも消すのかッ > chop
ごめん、私が悪かった。 せっかくの休みなのにマヂでごめん。
0649nobodyさん02/12/23 11:46ID:???
>>648
変数の扱いや、動作、振る舞いなど微妙に違うので幼虫居。
同じ漢字なのに、でんでん違う日本語と中国語みたいだから(w
0650nobodyさん02/12/23 12:21ID:???
>>648
chompなら大丈夫でないか?
0651nobodyさん02/12/23 13:42ID:???
あほな質問かもしれませんが、
『=>』
これってどういう動作をする物なんでしょうか?
宜しければ教えて下さい。お願いします。
0652nobodyさん02/12/23 13:46ID:???
↓
0653nobodyさん02/12/23 14:14ID:???
p "10" #=>"10"
p 10 #=>10
print("こんにちは") #=>こんにちは
0654nobodyさん02/12/23 15:27ID:UoY7N20E
=>は,と同じ。見かけが違うだけ
■ このスレッドは過去ログ倉庫に格納されています