>>944-951 1000行あるログファイルの100行目から199行目を処理する時、
@log = <LOG>;
@log = @log[99..198];
なら1000行分 + 100行分のメモリを必要とする。
while (<LOG>) {
push @log, $_ if $. == $start .. $end == $.;
}
なら1行分 + 100行分のメモリを必要とする。
…と理解してたんだが、もしかして違いますか?
>>952 $start と $end の値がわからん
954 :
952:02/10/14 00:25 ID:???
>>953 ごめんなさい。
$start = 100;
$end = 199;
955 :
953:02/10/14 00:29 ID:???
>>952 だったら、最終的にどっちも100行分で同じだけど、
@log = <LOG>; をやったほうは、全行分一気にメモリ食うからやばいかも
956 :
944:02/10/14 00:58 ID:???
この辺まとめてるサイトとかないですかね?<メモリ消費
検索下手なもんでみつけられじ
糞固定出番だぞ(大爆笑嘲笑激笑)
958 :
nobodyさん:02/10/14 03:17 ID:1xBJawHO
「出番」ね・・・ 「出たぞ」に見えた・・・ 寝よう
結局コテハンで新スレを立てて欲しいみたいです
この際コテハンでスレ立てるのを伝統としてしまいますか
トリップは#コテハンで
DOS上で使うとき、.PLファイルを入れてあるパスを指定しなくてもいいようにする方法はないでしょうか?
今はいちいちこんな風に書いています・・・
C:>perl c:\tools\perl\scripts\aaa.pl
よろしくおねがいします。
Spreadsheet::WriteExcel にあった
write_arrays.plという
サンプルですが、
my $worksheet1 = $workbook->addworksheet('Example 1');
my $worksheet2 = $workbook->addworksheet('Example 2');
my $worksheet3 = $workbook->addworksheet('Example 3');
my $worksheet4 = $workbook->addworksheet('Example 4');
my $worksheet5 = $workbook->addworksheet('Example 5');
my $worksheet6 = $workbook->addworksheet('Example 6');
my $worksheet7 = $workbook->addworksheet('Example 7');
my $worksheet8 = $workbook->addworksheet('Example 8');
なんてコードがあった。
もっと綺麗に書けませんか?
963 :
962:02/10/14 10:31 ID:???
my @sh_nums = qw(1 2 3 4 5 6 7 8 );
for my $idx (@sh_nums ){
my $worksheet${idx} = $workbook->addworksheet("Example $idx");
}
みたく書けませんか
for (1 .. 8){
my $wordsheet[$_]= $workbook->addworksheet("Example $_");
}
965 :
nobodyさん:02/10/14 10:40 ID:OizI25TP
しつもーん。
変数に格納した文字列の長さを得るにはどうしたらよかとですか?
length
967 :
965:02/10/14 10:42 ID:???
C:\>cd c:\tools\perl\scripts
と入力してカレントディレクトリを変更する。
c:\tools\perl\scripts>
となるので、
perl aaa.pl
で実行できる。
969 :
961:02/10/14 11:25 ID:???
>>968 すいませんが、それでは aaa.pl が引数としてパスを求めるばあいに
perl aaa.pl g:\msc\include\aaa\bbb\ccc\
こんな風になってしまいます・・・
つまりはダ、Perlパスとカレントディレクトリはパス通しとけってこった
971 :
961:02/10/14 11:30 ID:???
そのゴ、c:\tools\scripts\ を PATH に加えてみましたがだめでした
perl には JGAWK の AWKPATH みたいなものは無いのでしょうか?
972 :
961:02/10/14 11:33 ID:mVfsm4sP
あ、970を読んで、改めてやってみたらできました。
なんでさっきできなかったんだろ?
ありがとうございました。
975 :
973:02/10/14 12:57 ID:mVfsm4sP
ファイル内の文字列を一括して置換します。
比較文字列に正規表現が使えます。
perl gres.pl -e 's!and!or!' *.htm
これでカレントにある htm ファイルの 'and' が 'or' に変わるはずだと
思うのですが、動きません。
欲しい・・・
976 :
973:02/10/14 12:59 ID:mVfsm4sP
内容全部なら 's!and!or!g' です.
動きませんけど
978 :
973:02/10/14 14:16 ID:???
perlは初級なので、こんなの無理です。
979 :
962:02/10/14 14:44 ID:???
>>973 動かないって「どう動かない」のよ・・・
「perlは有効なコマンドではありません」だったら笑うしかないが
981 :
973:02/10/14 15:35 ID:mVfsm4sP
そこまでバカではないです・・・
できれば試してみていただきたいのですが
以下は何もおきずに終わります。
perl gres.pl -e 's!and!or!g' *.txt
以下は"Processed 0 files." と表示されて終わります。
perl gres.pl -v -e 's!and!or!g' *.txt
ファイルを見つけられないのかとファイル名を直接指定すると、
perl gres.pl -e 's!and!or!g' readme.txt
BLOB(XXXX) ←こんなのが画面いっぱいに表示されて、readme.txt は 0 バイトになってしまいます。
もうわけがわかりません
質問があるんですが
foreach (@HOGE) {
ここで$_を使って;
}
foreach (@HOGE2) {
ここでも$_を使ったら;
}
何か問題ありますか?
何も問題ありません
>>982 じぇーんじぇん。
ループの中は、それぞれの制御子で読まれるデータが$_に入る。
985 :
962:02/10/14 16:16 ID:???
何度もすみません。
どうしても理解できません。
何故、973のように配列に格納することが出来ないのでしょうか?
986 :
962:02/10/14 16:17 ID:???
987 :
982:02/10/14 16:25 ID:???
988 :
982:02/10/14 16:25 ID:???
これで俺もプログラマーだ!!!!!!!!!!!
hoge.txtから読みこんだ行に含まれる$aaaというのを変数として使う方法はありますか?
#!/usr/bin/perl
print "Content-type: text/plain\r\n\r\n";
print "Hello world!!\n";
これで俺もプログラマーだ!
ところで次スレは?
>>990 $aaaだけでいいなら
$line=s/\$aaa/$aaa/g;
何でも対応なら
$line=~s/$([A-Za-z_]\w*)/${$1}/g;
993 :
992:02/10/14 17:00 ID:???
2行目「~」が抜けた
994 :
990:02/10/14 17:10 ID:???
>>992 「何でも対応」の方を
$line=~s/\$([A-Za-z_]\w*)/${$1}/g;(「\」を追加)
としたら動きました。ありがとうございました。
995 :
992:02/10/14 17:11 ID:???
あれ?ちゃんとテストしたのに。動かなかったか。
,、-──────-、
/ `ヽ、
/ \
/ \
/ \
/ ,r-ト-、
,' f /⌒ヽ!
,' i L、-、ヽ\
! ` `ー、 ) } \
! `ゝf j \
.| ' ノ \
! ,,、ノ∠, ヽ、`ー'
ヽ ,,;彡'' / / ヾ、ヽ
i 、 /シイノ ,'´ '; i
{ ヽ `ー,イ`二 ̄-'' i!|
\_,r-rフヽ‐'´ '´ 、_ i! | i / ̄ ̄ ̄ ̄ ̄ ̄
| `‐' ノ`' '⌒ヽ-、,_ ヽ、 ノ | ,' < 1000は渡さん!
!  ̄ 〉 ,r-ノ  ̄``ヽ、 ヽ /{ | / / \______
\ ( / ,,、ミ-‐''⌒! ヽ i / | | / / /
\ `ー‐‐'´,,、、ミッ‐',∠ノ ̄`! ! | / | / / /
\ 〈 r!=‐'´_,_// /、 ! | レ' / /
`ヾ、ヾ \ ̄|~´ / ノ } | //
`ヾ、 ヽ└---'´`` ノ ! /! // ,、-‐
/ `ヾ、ヽ、_ , ''´ j / // /
/ \丶ー‐'´ '´ / ノ´ /
/ \` / /
記念パピコV(^o^)V
999 :
nobodyさん:02/10/14 17:52 ID:g9J1cXOv
age
1000 :
1000:02/10/14 17:52 ID:g9J1cXOv
やたー
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。