68user's page 掲示板

Prev< No. 2691〜2696> Next  [最新発言に戻る] [過去ログ一覧]
No. 2691 # aaa 2002/05/16 (木) 13:00:16
以下はどうでしょうか?

#!/usr/local/bin/perl

my(@array) = ( "<>aa<>bb<>cc<>dd<>", "ee<>ff<>gg" );

foreach $aref ( @array ) {
        $str .= $aref;
}

$str =~ s/\</\n\</g;
$str =~ s[ ^\n ]{}gsx;
print "$str\n";

No. 2692 # moto 2002/05/17 (金) 06:37:10
ふくしさん、aaaさん、
お二人のコードを参考にして解決できました。
ありがとうございました。

No. 2693 # 名無しさん 2002/05/17 (金) 14:02:00
>>2691 aaa
これはちょっと参考になりませんねぇ。。(aaaさんゴメン)
ちょっと間違ってます。

("[*1]<>aa<>bb<>cc<>dd<>[*2]", "[*3]ee<>ff<>gg"
与えられた配列の、*1〜3の所に項目が一つ増えただけで思ったようには動かないと思う。。

1つの変数にぶち込んだ時点で、*2 *3の区別ができなくなる。
そして、
$str =~ s[ ^\n ]{}gsx;
ですが、、^\nでマッチするところは、s(単一行として扱う)が付いてるから、頭の所("\n<>aa...")の\nが取れるだけだし、、gを付ける必要は無い
ここでまた一つ問題がある。。多分、motoさんの発言を見ると、*1の部分にも項目が来ると思われる。。"xx<>aa<>bb..."
そうすると、1行目に<>が入らず、、
xx
<>aa
...
ってなる。。。
あともう一つ。@arrayは配列だって分かるから括弧を付ける必要は無い
my @array = (...)こんな感じ

No. 2694 # 名無しさん 2002/05/17 (金) 14:21:57
自分で書いてみた。

my @target = ("<>aa<>bb<>cc<>dd<>", "ee<>ff<>gg");

my @result = map {
                my @tmp = split(/<>/);
                shift(@tmp) if $tmp[0] eq '';
                @tmp;
        } @target;


foreach (@result) {
        print "<>$_\n";
}

No. 2695 # G 2002/05/17 (金) 20:32:00
HP-UNIXで過去の日付を表示させる方法しりませんか?
ちなみにenv TZ=JST-9 dateでは1日分しかさかのぼれないので、
他の方法で知っている人がいれば教えてください。

No. 2696 # 68user 2002/05/18 (土) 01:39:02
>>2695 G
shellutils で GNU 版 date をインストールするか、perl で
    localtime(time()-60*60*24)
などとするのがお手軽なんじゃないでしょうか。

Prev< No. 2691〜2696> Next  [最新発言に戻る] [過去ログ一覧]