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

Perlコーディング初心者質問スレ Part 55

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2007/05/30(水) 11:34:01ID:???
Perlのコーディングで困ってる人のスレです。

【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。
「コマンドの意味がわかんない」とかはマニュアル見ましょう。
回答者さんは何でも屋じゃありません。

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

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

お勧めサイトは >>2-10

前スレ http://pc11.2ch.net/test/read.cgi/php/1171102883/
過去ログ倉庫 ttp://user.ftth100.com/mirrorhenkan/perl/
0049nobodyさん2007/06/03(日) 21:43:46ID:???
>>47
> useとuse baseは継承と多重継承だそうですが、違いはなんでしょうか?

use はコンパイル時にモジュールをロードする構文であり、use base は「所定の場所から base.pm を探してきてロードしなさいよ」といった意味です。
この場合、たまたま base プラグマが継承に関する機能を持っているというだけで、use 自体は継承とは何の関係もありません。

> 親を一つ持つか複数持つか、の違いだとは分かるんですが、継承を繰り返す=多重継承ではないんですか?

親を複数持つのが多重継承です。継承を繰り返すのが多重継承であれば、少なくとも Perl ではほとんどの明示的な継承は暗黙の多重継承となります。そうだとしたら呼び分ける必要がありませんね。

皮肉ではなく純粋に心配なので、こういうでまかせをどこから仕入れてくるのか、参考までにお教え願えませんか。
0050472007/06/03(日) 22:23:03ID:???
>>49
本やネットから正しい知識を得てきても出来の悪い頭がこんな解釈をしたようです。
回答ありがとうございました。
0051nobodyさん2007/06/03(日) 22:27:09ID:???
>>48
Perlの質問と言うかMySQLの質問に近いが…
MySQL上のどこかの文字セット設定がまずいな。多分スクリプト側だと思うが。
$db->do('SET CHARACTER SET sjis');
接続直後にやって見れ。

後、本当にsjisでいいのか?
Windowsお得意の機種依存文字を受け入れたいならcp932使っとけ。
いや、解ってて確固たる信念を持って受け入れないならそれはそれでいいんだが。
0052nobodyさん2007/06/03(日) 22:31:12ID:???
>>48
my.cnf (Windows XP ということなので my.ini とかになるのかな?) の調整で解決しないかな。
いかにも自動変換が悪さをしている気配よ。
0053nobodyさん2007/06/03(日) 23:30:46ID:???
あぁそれか。それmy.cnfにありえない一行が必要です。
0054nobodyさん2007/06/05(火) 03:15:21ID:???
ディレクトリの読み込みについて質問があります。

my $dir_name = "test";
opendir(DIR,"$dir_name");
closedir(DIR);

として、変数dir_nameに直接ディレクトリ名を入れると読み込めるのですが、

my @dir_list = (test,test2);
opendir(DIR,"$dir_list[0]");
closedir(DIR);

とすると読み込めないのは何故でしょうか?

my @dir_list = (test,test2);
my $dir_name = $dir_list[0];
opendir(DIR,"$dir_name");
closedir(DIR);

とした場合でも同様に読み込めず、原因が何なのかもわからず困っています…。
何か基礎的な部分で間違っているのかもしれませんが、教えて頂けると助かります。
宜しくお願い致します。
0055nobodyさん2007/06/05(火) 04:59:46ID:???
>>54
> my @dir_list = (test,test2);
ソースそのまま実行したのなら。
my @dir_list = ('test','test2');

opendir DIR, $dir_list[0] or die ;
する事もお勧め。
0056nobodyさん2007/06/05(火) 13:41:17ID:???
>>55
回答ありがとうございます。
こちらに書き込みをする時に""を付け忘れていました…;
実際のソースは↓の通りです。(サブルーチンの内容は省略)

my ($error,$th_max);
my (@thread,@response,@th_list);

unless(opendir(DIR,"testdir")){$error .= "魚";&error();}
@thread = readdir(DIR);
closedir(DIR);
splice(@thread,0,2);
pop @thread;
$th_max = @thread;

unless(open(FILE,"<testdir/list.dat")){$error = ."魚"; &error();}
@th_list = <FILE>;
close(FILE);

chdir("testdir");

unless(opendir(DIR,"$th_list[0]")){$error .= "魚"; &error();}
closedir(DIR);

最後の2行を消した状態では問題なく動作したので、最後のopendirの
ディレクトリ指定が間違っていると思うのですが…。
0057nobodyさん2007/06/05(火) 13:57:55ID:???
<>演算子で@th_listに代入したということは、@th_listの要素の尻に
改行が残っているということではないか
0058nobodyさん2007/06/05(火) 14:01:14ID:???
> unless(open(FILE,"<testdir/list.dat")){$error = ."魚"; &error();}

$error = ."魚"
ここで死んでるだけだと思われ

use strict;
use warnings;
くらい付けましょう
0059542007/06/05(火) 15:06:29ID:???
>>57
@th_listは
1行目:001
2行目:002
3行目:
となっています。$th_list[0]には1行目の「001」が入っています。
opendir(DIR,"001")  とした時は動作するのですが、
opendir(DIR,"$th_list[0]") とした時は動作しません…。

>>58
またまた下記間違えです…すみません;
>>56でも書きましたが、最後の2行を消した状態では問題無く動作しているので、
最後の2行に問題があると思うのですが…。
0060542007/06/05(火) 15:10:42ID:???
書き忘れましたが、動作しないというのは500エラーが出るという事ではなく、
サブルーチン&errorに飛んでしまうという事です。

>>56の最後の2行目を除いた状態では、&errorに飛ばずそのまま次の処理へ映るのですが、
unless(opendir(DIR,"$th_list[0]")){$error .= "魚"; &error();}
closedir(DIR);
という記述をすると、$th_list[0]に入っている「001」というディレクトリが開く筈のところ、
何故かディレクトリを開けずに&errorに飛んでしまうのです。
0061542007/06/05(火) 15:25:19ID:???
>>57
勘違いしていました…各行に改行が入っているという事だったんですね;
chopを使って@th_listの各行の改行を削除したところ、解決しました。

長々とすみませんでした;
ありがとうございました。
0062nobodyさん2007/06/05(火) 15:25:28ID:???
書き間違い、書き忘れ多すぎ。
自分の書き込みのチェックぐらいしろ。
てか、後出し情報多すぎ。
>>54のときと>>56のときと問題が微妙に変わってるし。
お前の書き込みを真に受けて付き合ってる方の身にもなれ。

結論は>>57が正解。
chomp使え。
0063622007/06/05(火) 15:26:20ID:???
orz.
0064nobodyさん2007/06/05(火) 17:36:05ID:???
54氏
老婆心ながら。
本当に「001」って名前のディレクトリを使ってないと思うが、
もし使ってるのなら用心した方がいいよ。ls を取りながら実際に
以下のワンライナーを実行してみると良い。
% perl -le 'mkdir 0101'
% perl -le 'mkdir q{0101}'
% touch 0101/foo
% perl -Mstrict -w -le 'opendir DIR, 0101 ; print readdir DIR '
0065nobodyさん2007/06/07(木) 10:44:45ID:???
携帯電話でアクセスしたとき、携帯電話用のページ表示したいのですが、
どういう方法がよいのでしょうか?
よろしくお願いします。
0066nobodyさん2007/06/07(木) 11:08:49ID:???
ご自分の環境に適した方法が良いでしょう。
詳しくはGoogle参照。
0067nobodyさん2007/06/07(木) 11:34:41ID:???
>>65
PHPでヘッダ分岐とか。
0068nobodyさん2007/06/07(木) 11:37:26ID:???
>>66-67
レスどもです。
ブラウザで、条件分岐させる方法があるみたいですね。
0069nobodyさん2007/06/07(木) 11:51:14ID:???
つ Net::CIDR::MobileJP
0070nobodyさん2007/06/08(金) 04:08:09ID:???
>>69
たぶんそれじゃなくて、スレタイと無関係に SetEnvIf とか RewriteCond なんだと思う。
0071nobodyさん2007/06/08(金) 12:26:55ID:???
Perlスレの正しい答えだろ
0072nobodyさん2007/06/09(土) 23:19:25ID:???
>>51
>>52
ありがとうございます。
管理ソフトでも入れて my.ini変えてみます。
0073nobodyさん2007/06/10(日) 03:46:48ID:???
それらでは解決しないけど少し苦しめ
0074nobodyさん2007/06/10(日) 15:23:21ID:m8gOFHaO
CPANを使いたいんですが、makeでコケてしまいます。
nmakeもnmake15もmingw32-makeを使ってもダメなんですが、
WindowsでCPANを使う時には何が主流ですか?
0075nobodyさん2007/06/10(日) 21:30:37ID:c+ghO5Jd
>>64の、
>本当に「001」って名前のディレクトリを使ってないと思うが、
>もし使ってるのなら用心した方がいいよ。
というのはどういう事でしょうか?

ディレクトリ名に番号を使用するとエラーになる(?)可能性があるとかでしょうか?

>>54じゃないですが、ちょっと気になったもので…
0076nobodyさん2007/06/10(日) 22:59:35ID:???
>75
ヒント: Perl的には0で始まる"数字"は8進数
0077nobodyさん2007/06/10(日) 23:23:38ID:???
>>76
ヒントというか半分答えですね。
すっきりしました!ありがとうございます。
0078nobodyさん2007/06/11(月) 17:47:01ID:???
perlの質問なのかわからないのですが、お尋ねします。

今レンタル鯖でLWP::Simpleを使って、cronを仕組んで、100以上のurlを早朝にgetしてパースしています。
uptimeの値を見ても、全くといっていいほど、負荷はかかっていないように思えるのですが、getするのに一番時間が
かかっているためなのか、スクリプトの実行から終了まで2分程度掛かっているようです。

一般論として、レンタル鯖でやってはいけない負荷の高いスクリプトの使用とは、何をもって判断すべきでしょうか?
また、LWPで100以上のurlを一気に取得することは非常識なのでしょうか?
0079nobodyさん2007/06/11(月) 18:26:54ID:???
鯖に聞け
0080nobodyさん2007/06/11(月) 19:52:40ID:???
>>79
個々については鯖に聞かないといけないのはわかるけど、このスレには自分で書いたスクリプトを
走らせてる人も多いと思うんだけど、これはヤバいかな?みたいな定性的な判断ってどうしてるのかな。
0081nobodyさん2007/06/11(月) 20:01:33ID:???
自鯖だから気にせん
0082nobodyさん2007/06/11(月) 20:46:11ID:???
Socket : 微妙
GD : 大変微妙
fork ; sine

こんな感じ
0083nobodyさん2007/06/11(月) 22:01:55ID:???
100文字程度の任意の文字列をPerlのみで縦書きに書き換えるにあたり、
当方何も思いつきませんので、何か思いついた方がいらしたら教えて下さい。

【入力例】
前走の大敗がよく分からないが、引き続き毛ヅヤや馬体の
張り等は際立って良く見える。

【出力例】
見際体きいよ前
え立の毛がく走
るっ張ヅ、分の
。てりヤ引か大
 良等やきら敗
 くは馬続なが
  、

実際は縦書き用の等幅フォントを使用します。
0084nobodyさん2007/06/11(月) 22:57:17ID:???
日本語の方は encode の勉強をしてくれ。
my $str = 'hogehoge,fugafuga,piyopiyo,barbar'x3 ;
my @word ;
my $cnt = 0 ;
for ( split //, $str ){
if ( $cnt == 10 and ! /^,$/ ){
push @{$word[10]}, q{ } ;
push @{$word[0] }, $_ ;
$cnt = 1;
next ;
}
push @{$word[ $cnt]}, $_ ;
$cnt == 10 ? $cnt = 0 : $cnt ++ ;
}

my $len = @{ $word[0] } ;
for my $line ( @word ){
push @{ $line }, q{ } if $len != @{ $line } ;
print join q{}, ( reverse @{ $line }) , "\n" ;
}
0085nobodyさん2007/06/11(月) 23:01:51ID:???
use strict;
use warnings;
use utf8;
binmode STDOUT, ":utf8";
my $text = '前走の大敗がよく分からないが、引き続き毛ヅヤや馬体の張り等は際立って良く見える。';
my $wrap = 6;
my ($i, @cols);
for my $str (split //, $text ) {
unshift @{$cols[$i++]}, $str;
$i=0 unless $i % $wrap;
}
my $len = @{$cols[0]};
for my $col (@cols) {
if (my $space = $len - @$col) {
unshift @$col, (" " x $space);
}
print join("", @$col), "\n"
}


俺の無い知恵を絞った力作
0086nobodyさん2007/06/11(月) 23:21:40ID:???
禁則処理まで要求すんのかあ…ガンガレ!
0087nobodyさん2007/06/11(月) 23:37:43ID:LQaHOZkB
Perl初心者です。
よろしくおねがいします。

メールフォームで添付ファイルをつけて送信されるようにしたいと
思っているのですが、添付されたファイルが全て1バイトになっていまいます。

考えられる原因は何でしょうか?
サーバーの一時フォルダ(temp)にアップロードされているファイルは0バイト
になっています。

どうぞよろしくおねがいします。
0088nobodyさん2007/06/11(月) 23:38:11ID:???
>>84-85
ありがとうございます。恐縮です。
後で試してみます。
>>86
もしかして禁則無いですか?
まぁアイデアは貰えたのでそのへんは己で何とかします。
0089nobodyさん2007/06/11(月) 23:42:23ID:???
>>88
84 には振り下げが含んである(一応)。後は自分で頑張れ。
0090nobodyさん2007/06/11(月) 23:45:39ID:???
マルチパートになってる?
0091nobodyさん2007/06/11(月) 23:52:48ID:LQaHOZkB
届いたメールは

Subject: $B%5%$%H$NEPO?(B
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="abcdefghijklmnopqrstu"

--abcdefghijklmnopqrstu
Content-Type: text/plain; charset=ISO-2022-JP
Content-Transfer-Encording: 7bit

こんな感じになっています。

これはマルチパートになっているということでいいんでしょうか?
0092nobodyさん2007/06/11(月) 23:54:50ID:LQaHOZkB
open(MAIL,"|$SENDMAIL -t");
print MAIL "To: $mailAdd\n";
print MAIL "From: $custAdd\n";
print MAIL "Reply-To: $custAdd\n";
print MAIL "$mailTitle\n";
print MAIL "Mime-Version: 1.0\n";
if($filename){
print MAIL "Content-Type: multipart/mixed; boundary=\"abcdefghijklmnopqrstu\"\n\n";
print MAIL "--abcdefghijklmnopqrstu\n";
print MAIL "Content-Type: text/plain; charset=ISO-2022-JP\n";
print MAIL "Content-Transfer-Encording: 7bit\n\n";
} else{
print MAIL "Content-Type: text/plain; charset=ISO-2022-JP\n";
print MAIL "Content-Transfer-Encording: 7bit\n\n";
}
print MAIL "$body";
if($filename){
print MAIL "--abcdefghijklmnopqrstu\n";
print MAIL "Content-type:";
print MAIL &filetype($filename2);
print MAIL "Content-Disposition: attachment; filename=\"$filename2\"\n";
print MAIL "Content-Transfer-Encoding: base64\n\n";
print MAIL "$encodetenp\n\n";
print MAIL "--abcdefghijklmnopqrstu--\n";
}

close (MAIL);

ソースの方はこんな感じにしています。
ファイル名は正しく添付されているのですが、なにせ中身がありません・・・
よろしくおねがいします。
0093nobodyさん2007/06/12(火) 09:41:54ID:???
BBS等で使われるオートリンクについて質問です。
あんまり長いURLの場合は、URLを省略して表示させたいのですが、
どうすればいいのでしょうか?
例えば30文字以上のURLだったら、後半を省略してリンクさせる。

【例】ttp://www.yahoo.co.jp/ex…


-----------------------------
sub auto_link {
$_[0] =~ s/([^=^\"]|^)(https?\:[\w\.\~\-\/\?\&\=\@\;\#\:\%]+)/$1<a href=\"$2\">$2<\/a>/g;
}
-----------------------------
0094nobodyさん2007/06/12(火) 10:01:51ID:???
>>92
その部分だけではなんともいえない。Perlプログラムがどうこうより、まずは
生成されたメールのソースをよく見て関連するRFCに照らし合わせて正しいか
どうか確認したほうがいいと思われる。
0095nobodyさん2007/06/12(火) 10:07:52ID:???
>>93
s///のeオプション使って好きに加工すればOK
0096nobodyさん2007/06/12(火) 10:28:43ID:???
>>93
もとのURLの後半をcutしてから『…』くっつけて、
html出力するときにリンクタグではさめばいいだけじゃん
何を悩む必要があるのかわからないんですけど
0097nobodyさん2007/06/12(火) 11:51:51ID:???
>>96
俺は君の回答がさっぱりわからない。
cutしてからリンクタグだと、リンクの飛び先も…になるじゃない。
しかも>>93が言っている変換対象の変数にはURLがひとつというわけでもなさそうだし。
0098nobodyさん2007/06/12(火) 12:40:01ID:???
表示するURLと、アンカーに含めるURLを別々に保持してっていう考えすら浮かべられないの?
初心者にも程があるだろ
0099nobodyさん2007/06/12(火) 12:43:17ID:???
>>93=>>97
氏ね
$_[0] =~ s/([^=^\"]|^)(https?\:[\w\.\~\-\/\?\&\=\@\;\#\:\%]+)/$1 . '<a href="' . $2 . '">' . (length $2 > 30 ? substr($2, 0, 30) . '…' : $2 ) . '<\/a>'/egx;
0100nobodyさん2007/06/12(火) 12:44:13ID:???
キチガイの相手なぞしてやるな。
0101972007/06/12(火) 12:56:27ID:???
>>98
申し訳ない。
少し有名なもんで天狗になっていた。
ソースを提示してもらえないでしょうか。
0102nobodyさん2007/06/12(火) 13:12:38ID:???
>>83
use String::Multibyte;

my $mcbs = String::Multibyte->new('shiftjis');

(my $str = <<"EOF") =~ tr/\r\n//d;
前走の大敗がよく分からないが、引き続き毛ヅヤや馬体の
張り等は際立って良く、見える。
EOF

my $length = 6;

my @array;
my @str = $mcbs->strsplit('', $str);
while(@str){
foreach(0..$length-1){
unshift(@{$array[$_]}, shift(@str) || ' ');
}
unshift(@{$array[$length]}, ($mcbs->strspn($str[0], '、。') ? shift(@str) : ' '));
}

foreach(@array){
print @{$_}, "\n";
}

# つか、乗り遅れた感。

>>92
一度、MIME::LiteやMIME::toolsとかモジュール使ってみて比較してみれば。
0103nobodyさん2007/06/12(火) 13:25:10ID:???
有名ってなんだよwwww
ふつーに変数2つとか配列とかハッシュとかに突っ込んで片方cutすりゃいいだけだろ
ソースもクソもねえよ
0104nobodyさん2007/06/12(火) 13:25:13ID:???
文字列を禁則を考慮しつつ行に分けるのとそれを縦書きに組み替えるのは
一度にやらない方が見通しがよいんじゃないか? 前半はJcodeのjfoldとか
使えばいいわけだし。
0105nobodyさん2007/06/12(火) 13:43:40ID:???
愚直に作るとこんな感じだけど、ちょいと微妙。
文字の切り分けは、どこかで一文字単位にしないといけないので、一度にsplitした方がいいように思う。

my @str = $mcbs->strsplit('', $str);
my @array;
# 一定の長さで区切って配列を作る
while(@str){
my $l = [map{shift(@str) || ' '}(1..$length)];
push(@{$l}, ($mcbs->strspn($str[0], '、。') ? shift(@str) : ' '));
push(@array, $l);
}
# 縦横を変える
my @array2;
for my $i (0..$length){
push(@array2, [reverse map{$array[$_]->[$i]}(0..$#array)]);
}

foreach(@array2){
print @{$_}, "\n";
}
0106nobodyさん2007/06/12(火) 13:47:43ID:???
>>102
mcbsとヒアドキュメントのダブルクォートと\rに突っ込んどくw

>>103
だから相手にするなって。
0107nobodyさん2007/06/12(火) 13:51:06ID:???
おまえも文章の誤解をしている時点で初心者以下の糞レベルであることには変わらんよ
0108nobodyさん2007/06/12(火) 13:54:55ID:???
はいはいおもしろいおもしろい
0109nobodyさん2007/06/12(火) 14:02:36ID:???
>>106
mcbsは… orz
脳内 =~ s/mcbs/mbcs/g;
0110nobodyさん2007/06/13(水) 07:53:10ID:???
聞く方も答える方も初心者かよ
0111nobodyさん2007/06/13(水) 09:14:14ID:???
はいはいおもしろいおもしろい
0112nobodyさん2007/06/13(水) 18:24:42ID:???
変数に代入できる値の制限はあるのでしょうか?
文字列だと1000文字まで、数値だと100桁まで...等
検索してもそれらしい情報が見つかりません…。
0113nobodyさん2007/06/13(水) 18:59:02ID:???
数値はあったが忘れた。Math::BigIntで検索すれば何か出る。
0114nobodyさん2007/06/14(木) 19:22:36ID:???
CGIで質問フォームを作ってそれが完了したと同時にメールが送られるようにしてるんだけど、
一定文字数を越えると文字化けしてしまう。。
誰かこの文字化けが何系の文字コードか分かる方います??

$"$($($($($($($($($($($($($($($($($($($($($($($($($($($($($($($($($($($($3$3$G2~9T$*$*$*$*$*$*$*$*$*$*$*$*$
0115nobodyさん2007/06/14(木) 19:39:52ID:???
普通に考えりゃ7bitJISだよね
そんな風に出るわけねーと思うけど
0116nobodyさん2007/06/14(木) 19:52:43ID:???
ありがとうございます。
ヘッダに
Content-Transfer-Encoding: 7bit
を付加してみましたが結果変わらず。。
途中までは普通に文字が表示されてるんだけど途中から急に上みたいな文字列になってしまう。
メール分を生成してるところで本文が入っている変数をDumpしてみたけど
そこは特に文字化けも無く全ての文字が正常に格納されている状態。。。
メールのヘッダとかその辺の設定しか考えられる余地が無いのだけど、うーん。。。
0117nobodyさん2007/06/14(木) 19:55:49ID:???
>>114
見るからにJISのひらがなあたりだろ。EUCのMSB落ちかもしれない。
とりあえず頭にESC-$-B補ってnkfに食わせたら

あえええええええええええええええええええええええええええええええええええここで改行おおおおおおおおおおおお

と出ました。
0118nobodyさん2007/06/14(木) 20:01:39ID:???
すごい!そう打ちましたw

>頭にESC-$-B補ってnkfに食わせたら
この部分がさっぱりですがググリながら実装方法を調べてます。
感動しましたw
0119nobodyさん2007/06/14(木) 20:07:49ID:???
$B$J$K$2$J$/BG$C$?J*$,;/$5$l$A$c$&$N$O0U30$HCQ$:$+$7$$$+$b$J!D#w
0120nobodyさん2007/06/14(木) 20:10:02ID:???
実装というか欠落したメールを復元するだけなのか(´・ω・`)
0121nobodyさん2007/06/14(木) 20:11:35ID:???
>あえええええええええええええええええええええええええええええええええええここで改行おおおおおおおおおおおお

わらたw
0122nobodyさん2007/06/15(金) 09:18:42ID:???
まあ、テスト時に特に意味の無い文字列を送るのはEメールの伝統ではあるが。
0123nobodyさん2007/06/15(金) 10:00:59ID:???
open(FH, 'test.txt');
$content = <FH>;
$content or die;
close(FH);

みたいに、closeする前に終了する(可能性がある)のはあまりよろしくないでしょうか?
0124nobodyさん2007/06/15(金) 10:09:53ID:???
終了する時にはcloseするので何の問題もない。
01251232007/06/15(金) 10:12:39ID:???
>>124
即レスthx
0126nobodyさん2007/06/15(金) 23:57:47ID:???
個人的にはちゃんと閉じたいけどね
0127nobodyさん2007/06/16(土) 02:33:58ID:???
そんなことを気にしているくらいならopen文のエラーも気にしろよ
0128nobodyさん2007/06/16(土) 03:01:26ID:???
俺はかならずifの中でopenしてる
0129nobodyさん2007/06/16(土) 03:12:20ID:???
unlessじゃ駄目?
0130nobodyさん2007/06/16(土) 04:00:22ID:???
>>128
Cから来た奴は必ずそうするがorが最もスマートだ
0131nobodyさん2007/06/16(土) 04:25:42ID:???
> Cから来た奴は必ずそうするがorが最もスマートだ

or のあとにブロック書ける?
0132nobodyさん2007/06/16(土) 05:43:36ID:???
... or do{ ... };
0133nobodyさん2007/06/16(土) 05:46:41ID:???
え?
こんな高い位置にブロック書くの?
ちょっと書いてみて。

sub error
{
    my($str) = @_;
    print $str;
    exit;
}
sub main
{
    open(FILE, "< uso.txt") or &error("そんなファイルないよ");
    my @lines = <FILE>;
    close(FILE);
    $#lines < 0 and &error("中身ないよ");
    # 以下略
}

はースッキリ快適。
0134nobodyさん2007/06/16(土) 09:51:02ID:???
>>133
「 can か cannot」かって聞かれて(と判断して) can と答えたんじゃね?
実際やるか とは別でしょ。
01351322007/06/16(土) 12:14:24ID:???
>>133
>>131
> or のあとにブロック書ける?
を質問と捕らえて回答したまで。
0136nobodyさん2007/06/16(土) 12:43:25ID:???
2引数openとか古臭い書き方だなあ
0137nobodyさん2007/06/16(土) 13:49:35ID:???
批判はするが例を示さない
この板らしいっちゃらしいな
0138nobodyさん2007/06/16(土) 17:06:40ID:???
示すまでもなくperldocに書いてあります
0139nobodyさん2007/06/16(土) 17:39:20ID:???
今後当スレはPerlDocに統合します。
長らくの御愛顧ありがとうございました。
ttp://www.ayni.com/perldoc/

--完--
0140nobodyさん2007/06/16(土) 17:51:06ID:???
確かにこの低レベルなスレはperldocと統合しても何ら差支えはないだろう
あ、ム板の方は高レベルなので残して置いて下さいね^^
0141nobodyさん2007/06/16(土) 17:53:36ID:???
ム板ならともかくこっちなら2引数で正解だな。
どこにでも5.6以上のPerlが置いてあるなんて考えるのは甘い。
0142nobodyさん2007/06/16(土) 18:25:16ID:???
顔赤すぎ
0143nobodyさん2007/06/16(土) 18:25:26ID:???
まあ現代の大抵のレン鯖は5.8なのが事実ですけどね
0144nobodyさん2007/06/16(土) 18:36:36ID:???
ム板って何?
前スレの終わり辺りから何かあると盛んに出てくるけど
0145nobodyさん2007/06/16(土) 18:50:25ID:???
OS再インストールしたら自己解決しました。
ttp://pc11.2ch.net/test/read.cgi/tech/1173880452/
2chか。レベル高いってネタだよね?

105 デフォルトの名無しさん [sage] Date:2007/03/22(木) 22:45:19  ID: Be:
    HTTP 500 - 内部サーバー エラー です
106 デフォルトの名無しさん [sage] Date:2007/03/22(木) 22:48:42  ID: Be:
    なんでブラウザにエラーが出るわけ?

いやApacheの設定なんですけどね…
前スレの終わりでuse Benchmark;使ったら全員で猿のようにベンチマーク。
未だに。2chばかり見てるとますますバカになるよ。
0146nobodyさん2007/06/16(土) 20:33:02ID:???
>>141
粘着君の相手するなよ。
0147nobodyさん2007/06/16(土) 21:07:50ID:???
>>141
FileHandleやIO::Fileモジュールを使おうよ。
0148nobodyさん2007/06/16(土) 21:08:54ID:???
だって遅いしー
■ このスレッドは過去ログ倉庫に格納されています