【Perl】複数行テキストを配列に入れて1行ずつ処理しようとして失敗

ホームページちぇんじゃーを更新してみた

実は、ホームページチェンジャーは Perl でできてるのですが、複数行テキストを一行単位で処理しようとして失敗したので説明します・ω・

my $buf = `curl -sL "$arg"`;
my @soc = split (/[\n\r]/, $buf);
while ($buf=<@soc>) {
# 処理

元のコード
これ実行したら、改行どころか、スペース区切りで処理されてしまいました( ˘ω˘)
最初 split 関数がうまくいかないのかと思ったのですが、配列を代入して while で処理する部分でNGだった模様。

my $buf = `curl -sL "$arg"`;
my @soc = split (/[\n\r]/, $buf);
foreach my $buf(@soc){
# 処理

修正後の処理、配列 @soc から1つずつ取り出して $buf に入れて、foreach で回すようにした

これで、想定通りの動作になりました。

おすすめ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です