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

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

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

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

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

最低でも1と3が無いと誰も答えられないよ。
ソース貼る時は、全角スペースでインデント忘れずに。
良い回答は良い質問から。一緒に勉強しましょう。

過去ログやお勧めサイトは >>2-10
0210nobodyさん2006/06/06(火) 19:41:34ID:???
>207
あ〜、無理に $i 1つでやろうとしてたから駄目だったかw

>204
use strict;

my @list = map{ "str$_" }(0..19);

my $n = 0;
my @newlist = ();
for(my $i = 0; $i < 10; $i++){
  if($n && !($n % 5)){ $n += 5; }
  $newlist[$i] = $list[$n] . $list[$n + 5];
  $n++;
}
print join("\n", @newlist);

0211nobodyさん2006/06/06(火) 19:44:07ID:???
>>198
エレガントじゃないけど、こんなのどうかな・・・

use strict;

sub wrap_list($@) {
    my ($width, @list) = @_;
    return @list if $width <= 0 or @list == 0;

    my @result = (), my $wrap = 0, my $i = 0;
    for (@list) {
        $result[$i++] .= $_;
        if ($i % $width == 0) {
            $wrap = !$wrap;
            $i -= $width if $wrap;
        }
    }
    return @result;
}

my @wlist = wrap_list 5, ('a'..'z');
print "@wlist\n";
0212nobodyさん2006/06/06(火) 20:00:57ID:???
>>198
my @list;
for (my $i = 0; $i < 10; $i++) {
my $j = $i % 5 + 10 * int($i / 5);
$list[$i] = $list[$j] + $list[$j + 5];
}
0213nobodyさん2006/06/06(火) 20:02:43ID:???
すまん自己レス。文字列連結するのか。一行間違った。

>>198
my @list;
for (my $i = 0; $i < 10; $i++) {
my $j = $i % 5 + 10 * int($i / 5);
$list[$i] = $list[$j] . $list[$j + 5];
}
■ このスレッドは過去ログ倉庫に格納されています