5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

【Perl】初心者コーナー Part16

1 :3PIO ◆3pIoOHKo :02/09/15 15:11 ID:???
いらっしゃーい、Perlの「コーディング」で困ってる人のスレです。

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

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

CGIだけど、なんか質問ある? Part 6 (その2)
http://pc.2ch.net/test/read.cgi/php/1025930486/
参考書籍の話題は【【Perl,CGI】参考書籍 第2版】
http://pc.2ch.net/test/read.cgi/php/988809842/
その他の雑多な話題は、【CGIに依存しないPerlの話題一般】
http://pc.2ch.net/test/read.cgi/php/991313362/
スクリプトの改造依頼は 【スクリプト改造工房 Part4】
http://pc.2ch.net/test/read.cgi/php/1012839651/

過去ログ、その他の役立ち情報は>>2-10あたりを見よう。

952 :nobodyさん:02/10/14 00:19 ID:???
>>944-951
1000行あるログファイルの100行目から199行目を処理する時、

@log = <LOG>;
@log = @log[99..198];

なら1000行分 + 100行分のメモリを必要とする。

while (<LOG>) {
 push @log, $_ if $. == $start .. $end == $.;
}

なら1行分 + 100行分のメモリを必要とする。

…と理解してたんだが、もしかして違いますか?

953 :nobodyさん:02/10/14 00:22 ID:???
>>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:???
この辺まとめてるサイトとかないですかね?<メモリ消費
検索下手なもんでみつけられじ

957 :nobodyさん:02/10/14 01:40 ID:???
糞固定出番だぞ(大爆笑嘲笑激笑)

958 :nobodyさん:02/10/14 03:17 ID:1xBJawHO
>>932 の事ですか(゚Д゚)?

959 :nobodyさん:02/10/14 03:17 ID:???
「出番」ね・・・ 「出たぞ」に見えた・・・ 寝よう

960 :nobodyさん:02/10/14 07:45 ID:???
結局コテハンで新スレを立てて欲しいみたいです
この際コテハンでスレ立てるのを伝統としてしまいますか
トリップは#コテハンで

961 :nobodyさん:02/10/14 10:04 ID:???
DOS上で使うとき、.PLファイルを入れてあるパスを指定しなくてもいいようにする方法はないでしょうか?
今はいちいちこんな風に書いています・・・
C:>perl c:\tools\perl\scripts\aaa.pl

よろしくおねがいします。


962 :nobodyさん:02/10/14 10:22 ID:???
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");
}

みたく書けませんか

964 :nobodyさん:02/10/14 10:40 ID:???
for (1 .. 8){
my $wordsheet[$_]= $workbook->addworksheet("Example $_");
}

965 :nobodyさん:02/10/14 10:40 ID:OizI25TP
しつもーん。
変数に格納した文字列の長さを得るにはどうしたらよかとですか?


966 :nobodyさん:02/10/14 10:40 ID:???
length

967 :965:02/10/14 10:42 ID:???
>>966
ありがとー!


968 :nobodyさん:02/10/14 10:49 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\
こんな風になってしまいます・・・


970 :nobodyさん:02/10/14 11:29 ID:???
つまりはダ、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を読んで、改めてやってみたらできました。
なんでさっきできなかったんだろ?
ありがとうございました。


973 :nobodyさん:02/10/14 11:43 ID:???
これ↓を使いたいのですが、
http://www.perlpress.com/perl/gres
例の通りに実行しても全然動かないのですけど、どうやれば動くのでしょうか?
実はかれこれ1時間くらい苦闘しています・・・


974 :nobodyさん:02/10/14 12:26 ID:???
>>973
コレなにするやつ?

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' です.
動きませんけど


977 :nobodyさん:02/10/14 13:08 ID:???
>>973
だったら自作したほうが・・・

978 :973:02/10/14 14:16 ID:???
perlは初級なので、こんなの無理です。


979 :962:02/10/14 14:44 ID:???
>>964
できませんでした。

980 :nobodyさん:02/10/14 15:12 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 バイトになってしまいます。

もうわけがわかりません

982 :nobodyさん:02/10/14 16:11 ID:???
質問があるんですが
foreach (@HOGE) {
ここで$_を使って;
}
foreach (@HOGE2) {
ここでも$_を使ったら;
}
何か問題ありますか?

983 :nobodyさん:02/10/14 16:12 ID:???
何も問題ありません

984 :nobodyさん:02/10/14 16:13 ID:???
>>982
じぇーんじぇん。
ループの中は、それぞれの制御子で読まれるデータが$_に入る。


985 :962:02/10/14 16:16 ID:???
何度もすみません。
どうしても理解できません。
何故、973のように配列に格納することが出来ないのでしょうか?

986 :962:02/10/14 16:17 ID:???
>985

964のマチガイでした。

>>964


987 :982:02/10/14 16:25 ID:???
>>983-984
ありがとうございました。

988 :982:02/10/14 16:25 ID:???
これで俺もプログラマーだ!!!!!!!!!!!

989 :nobodyさん:02/10/14 16:49 ID:???
>>988
ホスト情報が違うね

990 :nobodyさん:02/10/14 16:52 ID:???
hoge.txtから読みこんだ行に含まれる$aaaというのを変数として使う方法はありますか?

991 :nobodyさん:02/10/14 16:53 ID:???
#!/usr/bin/perl

print "Content-type: text/plain\r\n\r\n";
print "Hello world!!\n";


これで俺もプログラマーだ!


ところで次スレは?

992 :nobodyさん:02/10/14 16:59 ID:???
>>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:???
あれ?ちゃんとテストしたのに。動かなかったか。

996 : ◆5Gw81M1S2c :02/10/14 17:12 ID:???
         ,、-──────-、
       /            `ヽ、
      /                \
    /                   \
   /                      \
   /                       ,r-ト-、
  ,'                       f /⌒ヽ!
  ,'                       i L、-、ヽ\
  !                       ` `ー、 ) } \
  !                         `ゝf j  \
 .|                          '  ノ   \
  !              ,,、ノ∠,      ヽ、`ー'
  ヽ           ,,;彡'' / /        ヾ、ヽ
   i   、      /シイノ ,'´          '; i
   {    ヽ  `ー,イ`二 ̄-''             i!|
    \_,r-rフヽ‐'´ '´ 、_               i! |  i     / ̄ ̄ ̄ ̄ ̄ ̄
     | `‐' ノ`'    '⌒ヽ-、,_     ヽ、    ノ |  ,'   < 1000は渡さん!
     !   ̄ 〉      ,r-ノ    ̄``ヽ、  ヽ   /{ | / /    \______
     \  (      /   ,,、ミ-‐''⌒! ヽ  i  / | | / / /
      \  `ー‐‐'´,,、、ミッ‐',∠ノ ̄`!  !   | / | / / /
        \ 〈 r!=‐'´_,_//   /、  !   |  レ' / /
         `ヾ、ヾ \ ̄|~´   /   ノ  }   | //
            `ヾ、 ヽ└---'´`` ノ  !  /! //  ,、-‐
            / `ヾ、ヽ、_ , ''´  j  / //   /
           /      \丶ー‐'´ '´ / ノ´  /
          /        \`     /   /

997 :nobodyさん:02/10/14 17:16 ID:???
記念パピコV(^o^)V

998 : ◆Go4ZKngPGE :02/10/14 17:25 ID:???
新スレ【Perl】初心者コーナー Part17
http://pc.2ch.net/test/read.cgi/php/1034583844/

#コテハン で立てますた

999 :nobodyさん:02/10/14 17:52 ID:g9J1cXOv
age

1000 :1000:02/10/14 17:52 ID:g9J1cXOv
やたー


1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

281 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)