Perlコーディング初心者質問スレ Part 53
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/11/26(日) 14:38:23ID:SlmGsFMB【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。
「コマンドの意味がわかんない」とかはマニュアル見ましょう。
回答者さんは何でも屋じゃありません。
1: 自分はこういう事がしたい。
2: それでこんな風にやってみたが・・・
3: こんなエラーが出て上手く行かなかった。
最低でも1と3が無いと誰も答えられないよ。
ソース貼る時は、全角スペースでインデント忘れずに。
良い回答は良い質問から。一緒に勉強しましょう。
お勧めサイトは >>2-10
前スレ http://pc8.2ch.net/test/read.cgi/php/1153987463/
過去ログ倉庫 ttp://user.ftth100.com/mirrorhenkan/perl/
0708nobodyさん
2007/01/09(火) 12:40:14ID:???パスワード送信できるようにすれば
0709nobodyさん
2007/01/09(火) 13:09:11ID:???>>697
>・・・大体、半角カタカナを使って書く言葉って、あまりいい意味の言葉じゃないですよね。
はい、いい意味じゃない言葉。
m9(^Д^)プギャー ( ´_ゝ`)フーン ( ゚д゚)、ペッ( ゚Д゚)ヴォケ!!
('A`)マンドクセ ( ´,_ゝ`)プッ
顔文字だけでこれだけありますね。
顔文字だけならДゝあたりをNGにすればいいですが、顔文字なしで
使う場合もある。
NGワードに半角カタカナを指定すると誤爆しまくるのでダメ。
#ギあたりでひっかかる
0710nobodyさん
2007/01/09(火) 13:12:47ID:???日本人だよね?作ったのって。
;#$jcode'h2zf{'xxx'}
;#These are pointer to the corresponding function just
;#as $jcode'convf.
これなんかどういう意味?どういう使い方するわけ?
訳はできても使い道がわからないんだが。
0711nobodyさん
2007/01/09(火) 13:20:54ID:???0713nobodyさん
2007/01/09(火) 16:27:08ID:???ここの内容をコマンドライン上ではなく、
perlスクリプト内でしたいのですが、
どうやってやればよいでしょうか?
ご教授お願いします。
PHPは結構かじりましたが、perlは全く0です。
正規表現もそれほど自信がないです・・・・ orz
0715nobodyさん
2007/01/09(火) 17:01:19ID:???単に「perlスクリプト内でしたいの」であれば1行毎に
$var =~ s/¥r¥n/¥n/;
をすれば良いのだが、>>714が読み取ったように、
「ファイルの読み書きやらデータのIOをどう処理したら良いか」
ということを聞きたいのか?
0716nobodyさん
2007/01/09(火) 17:07:56ID:???要はWindowsの改行コードをUNIXのものに変えたいということじゃないの?
$textに問題の文字列が入っているとしよう。
$text =~ s/\r\n/\n/g; # Perl
これで$text内の全ての\r\nが\nに変換される。
これはPHPでいう以下のいずれかの構文と同じ処理になる。
$text = preg_replace("/\r\n/", "\n", $text); // PHP: 意味合いとしてはこっちがより正確だが
$text = str_replace("\r\n", "\n", $text); // PHP: PHPではこっちがより推奨される
問題がWindowsとUNIXだけなのであれば、単純に\rを排除するだけでも良い。
$text =~ s/\r//g; # Perl
これはPHPでいう以下のいずれかと同じ処理。
$text = preg_replace("/\r/", "", $text); // PHP: 意味合いとしてはこっちがより正確だが
$text = str_replace("\r", "", $text); // PHP: PHPではこっちがより推奨される
が、これにMacが絡むと改行コードは\rだけだったりすることもありうるわけで、
単純に\rを排除していてはMacでは改行が全て消えて無くなってしまう。
より汎用性を求めるなら以下のようにすべきだろうね。
$text =~ s/\r\n/\n/g; # Perl1: Win -> UNIX
$text =~ s/\r/\n/g; # Perl2: Mac -> UNIX
これはPHPでいう(以下略
$text = preg_replace(array("/\r\n/", "/\r/"), "\n", $text); // PHP: 意味合いとしてはこっちがより正確だが
$text = str_replace(array("\r\n", "\r"), "\n", $text); // PHP: PHPではこっちがより推奨される
もしくは
$text =~ s/\r\n|\r/\n/g; # Perl: 上の1と2をまとめたもの
これはP(ry
$text = preg_replace("/\r\n|\r/", "\n", $text); // PHP: 配列を使わない場合
0717nobodyさん
2007/01/09(火) 17:12:28ID:???以下を hoge.pl で保存
=======
#!/usr/bin/env perl -i.old -p
s/\r\n/\n/ ;
=======
$ perl hoge.pl hoge
じゃダメか?w
しかしソース元の -npe ってなんだかなあ
=====
#!/usr/bin/env perl
for my $name ( @ARGV ){
open IN, $name or die ;
my $data = do { local $/ ; <IN> } ;
close IN ;
rename $name , $name . '.old' ;
$data =〜 s/\r\n/\n/g ;
open OUT, '>' . $name ;
print OUT $data ;
close OUT ;
}
=====
0718nobodyさん
2007/01/09(火) 17:13:48ID:???単なるバックスラッシュに脳内置換よろ
0719nobodyさん
2007/01/09(火) 17:21:51ID:???レスありがとうございます。
perlのスクリプトをちょっと改造したい
(ある変数内のデータから^Mを削除したい)のですが、
systemとかを使うと、ほかの部分も弄る必要性が出てきそうで、
現時点の自分のperl能力からはできれば避けたいと考えてます。
PHPなら下みたいな感じでよい気がするのですが、
同じことをperlではどうすればいいでしょうか。
perlは変数宣言とかが厳しいと聞いたことがありますが、
ほかはphpと似たようなものでしょうか?
$file_array = file( $file_path );
for($i=0; $i<count($file_array); $i++){
$file_array[$i] =~ s/\r\n/\n/;
}
$file_data = implode("\n", $file_array);
0720nobodyさん
2007/01/09(火) 17:31:31ID:???$file_pathに格納されたパスにあるファイルを開いて読み出し、
各行の\rを削り、さらに各行をさらにもうひとつの\nをはさんで
つなげているような。
そもそもPHPとかperl以前に、自分が何をやりたいのか、何をやろうと
しているのかを的確に理解して説明する能力を身につけるべきな気が
するぞ。
0722nobodyさん
2007/01/09(火) 17:38:59ID:???rep2マジお勧め。
>>719
その構文だと各行の間が"2つの"\nで連結されてしまうけどそれでいいのかな?
open(FILE, $file_path);
@file_array = <FILE>;
close(FILE);
for (my $i = 0; $i < @file_array; $i ++) {
$file_array[$i] =~ s/\r\n/\n/;
}
$file_data = join("\n", @file_array);
>>721
おまいも>>719見てからレスれw
0723nobodyさん
2007/01/09(火) 17:49:05ID:???ネスレじゃありませんよレスれ
0724nobodyさん
2007/01/09(火) 17:51:22ID:???スルーで。
0725nobodyさん
2007/01/09(火) 18:12:19ID:???0726nobodyさん
2007/01/09(火) 18:27:32ID:???軽く確認してみただけけれども、ファイルコピーだけで5.005でもJcode動いてるような。
5.005よりも古い鯖って見たこと無いのだけれどそんなにあるんですか?
0727nobodyさん
2007/01/09(火) 18:51:04ID:???http://fh.aaacafe.ne.jp/cgiperl.html
iswebは5.6
http://help.www.infoseek.co.jp/isweb/?id=20601
Jcode.pmは度忘れしたけど、CGI.pmも入ってないとこがあったはず。
上の2つは古きよきなんとやら。
すでに引越ししてるだろうけど。
0728nobodyさん
2007/01/09(火) 18:51:43ID:???0729650
2007/01/09(火) 20:30:53ID:???アドバイスありがとうございます。
>>660
やはりそれが原因でしたエスケープで解消しました。
>>664
CGIでCGIファイルを書き出す必要性が頭悪すぎてよくわかりませんorz...
ですがいずれそういう必要性が無いとも限らないので作ってみようと・・・
たとえばホームページを春には桜吹雪の演出、夏は魚が泳ぎ、秋には紅葉が降り、
冬には雪が降るような演出をするとします。
このページそのものがHTMLでは作れそうに無いのでHTMLではなくCGIの
ファイルだとします。
そのページを季節に合わせるためFTPを使わずに更新するには更新用のCGIの
ページからCGIのファイルを更新すれば出来るみたいなー感じでいいのかなと。
でも、もっと簡単な方法がありそうですね。
0731nobodyさん
2007/01/09(火) 22:47:00ID:???処理速度あっぷのためにif分などの分岐をなくそうとcgiからcgiを書き出してたなぁ・・・。
今ならテンプレートを読み替えるだけで済むなぁ。
0732nobodyさん
2007/01/09(火) 23:05:36ID:???当然、各季節用の js なり背景なりを用意しておいて、CGIの中に書かれた
CSS部分を書き換えて背景変えたり、script type="text/javascript" src="ここ" を書き換えて
呼び出す js を変えたり…という動作をするCGIは作れる。
CGIからHTMLを書き換えたり、別のCGIを書き換えたり、いろいろできることはできる。
やることは「テキストファイルを読んで内容を変更して書き出す」だけですから。
適当に「設定ファイル」を作ってそれを差し替えるだけで済むようにすればCGIを組むより楽ですよ。
「季節が変わる毎」程度だったら、もっとも簡単かもしれないのがローカルで書き換えてFTP(ry
でも、勉強のためにローカル環境でこういうのを作って遊んでみたくなったんだったら、
是非遊んでみるべきだと思う。
0733nobodyさん
2007/01/09(火) 23:13:11ID:???0734nobodyさん
2007/01/09(火) 23:32:53ID:???>CGIでCGIファイルを書き出す必要性が頭悪すぎてよくわかりません
それはこちらのセリフなのだがw
第三者にやれと言われてやってるなら仕方ないが、自分で思い付いてやってるとしたら、
他にもっと勉強した方が良いと思うぞ。
リファレンスとかオブジェクト指向とかな。
0737nobodyさん
2007/01/10(水) 02:08:30ID:???物理的にファイルを生成するという意味ではそのとおり。
論理的なプログラグを生成する難易度はまた別だけどな。
0738nobodyさん
2007/01/10(水) 10:52:10ID:???あるいは設定ファイルのようなものを外部で持っておいて
その設定ファイルを書き換えるとか。
0740nobodyさん
2007/01/10(水) 16:08:45ID:???仕組みを学び知ることは大事だよね
0742nobodyさん
2007/01/11(木) 05:11:48ID:???ifを使って、特定の条件を満たさないと隠しページへ行けない様にしたい
のですが、どういう関数を使えば良いかさっぱりわかりません。例えば、
あるページ上でテキストボックスに1と入力したら隠しページへ移動する
といった感じにしたいのですが、Basic認証のプログラムなどを参考にし
てみましたが、意味がわからず挫折しました。
隠しページはcgiファイルにして、直接URLを打ち込んでも閲覧できないよ
うにし、特定の条件をクリアした場合のみ閲覧できるようにしたいのです。
もちろんパーミッションは644にします。url_jump_toで最初試したのです
が、案の定駄目でした。
どなたか、条件をクリアしたらcgiファイル(パーミッション644)を閲覧
できる方法をよろしければ教えてください。房ですみません。
0743nobodyさん
2007/01/11(木) 07:13:27ID:???ActivePerlをインストールしたのですが、そこからどすればいいのか分かりません・・
.plファイルをダブルクリックしてもコマンドラインが一瞬でて消えるだけです・・
どなたか教えてください!!!
0744nobodyさん
2007/01/11(木) 07:52:48ID:???DOS窓を開いて
> perl /path/to/hoge.pl
みたいに実行させたり hoge.pl が終了する部分に `pause` を書くとか。。
0745nobodyさん
2007/01/11(木) 07:57:07ID:???0746nobodyさん
2007/01/11(木) 10:36:19ID:???644は実行権限が無いから、プログラムとしては動かない
とはいえ拡張子がcgiだとhttp経由ではプログラムとしてしか見れないようになってるはず
つまり644で閲覧は現実的じゃない(できないことは無いだろうけど)
それよりもif文で分岐して2つのファイルのどちらかを読み込んで表示すればいいんじゃね?
0747nobodyさん
2007/01/11(木) 12:13:26ID:???以前は PPM 経由でインストールできてたのにこんなことってあるんですね・・・
0748nobodyさん
2007/01/11(木) 13:04:09ID:???0750nobodyさん
2007/01/11(木) 13:13:49ID:???http://www.microsoft.com/japan/msdn/vstudio/express/visualc/usingpsdk/
0752nobodyさん
2007/01/11(木) 13:20:57ID:???ppm3はモジュール名じゃなくてディストリ名で検索しないといけなかったような
つまりTime-HiResで
0753nobodyさん
2007/01/11(木) 13:28:22ID:???配布されてるので、いちいち別にとってきてインスコする必要はなくなった。
0754nobodyさん
2007/01/11(木) 13:29:22ID:???ありあと・・・でも >751 さんの方法で見つかった m(_ _)m
0757nobodyさん
2007/01/11(木) 14:56:34ID:???0758nobodyさん
2007/01/11(木) 15:08:39ID:???0760nobodyさん
2007/01/11(木) 15:27:03ID:???少し疑問があるのですが、これってURLを直接打ち込まれたら
第三者に覗かれる恐れがありますよね?
0761nobodyさん
2007/01/11(木) 15:28:49ID:???0762nobodyさん
2007/01/11(木) 15:30:33ID:???データファイルは HTTP で見れる範囲より外に置くか、ランダムな文字列で生成された16文字ほどのディレクトリに置けばいい
でなきゃ DB にぶち込むとか・・・
0763nobodyさん
2007/01/11(木) 15:32:42ID:???0764nobodyさん
2007/01/11(木) 15:36:39ID:???説明不足でした。条件を満たしたら隠しページのファイルを読み取るよう
にしたかったのですが、隠したいページのURLを直接入力されたら終わり
だなあと思いまして。
>>762
HTTPで見れる範囲外ですか...なるほど。ちょっと調べてみます。
ランダムなディレクトリはrand関数でなんとかなりそうですが、
僕の知識ではまだまだできそうにありませんorz
>>763
cgiを644にするとファイルが読み取れなくなってしまうので
どうしたもんかと途方にくれています。
みなさんありがとうございます。
0767nobodyさん
2007/01/11(木) 15:57:25ID:???ここでちょこちょこやりとりするだけじゃ面倒みきれない
ような気がする
0768nobodyさん
2007/01/11(木) 16:03:19ID:???openで読み込みましたが、やはりうまくいきませんでした。
急遽、CGIとPerlでシステムを作るよう頼まれたのですが
おっしゃる通り、まだまだ無知なことも多いので1週間くらい
死ぬ気で勉強してみます。
色々聞けてよかったです。ありがとうございました。
0769nobodyさん
2007/01/11(木) 16:03:57ID:???0770nobodyさん
2007/01/11(木) 19:01:52ID:???はぁ・・・
0771nobodyさん
2007/01/11(木) 19:48:29ID:???まあ初心者はPerl/CGIをよくわかってないからな,
偉そうに言ってる俺もいまいちよくわかってないけど.
ここは初心者スレだけど,やっぱりできる人間が多いの?
0772nobodyさん
2007/01/11(木) 20:31:25ID:apL14Vu+742がふぁびょりすぎて噛みあってないんだと思うぞw
Basic認証は、利用できるように設定がなっているなら
.htaccess
.passwd
の2ファイル作って
.htaccessを認証させたいディレクトリに置き、.passwdのある場所を指定する。
.passwdを適切な場所におく。レンサバだと.passwdを置く領域確保されてないっしょ?
/home/[account]/ とか用意してくれている鯖ならいいんだけどね
0773nobodyさん
2007/01/11(木) 20:40:24ID:???たいてい.ht*のファイルすべてがアクセスを拒否されるから、.passwdも
.htpasswdにしておいた方が安心だな。
0774nobodyさん
2007/01/11(木) 23:45:41ID:???770は何がおかしいのかわからんのだが.
CGIとPerlって部分か?
0775nobodyさん
2007/01/11(木) 23:51:59ID:???0776nobodyさん
2007/01/11(木) 23:56:09ID:???770は言葉の意味と用途が違うと言いたいんだろうけど、
ここは初心者質問スレだからな。
「断熱とベニヤ板で家を作る」と言ってる感じか?
そんなの、「ベニヤ板で断熱しつつ家を作る」と
置換・理解できない770がDQNなだけ。ほっとけ。
0777nobodyさん
2007/01/12(金) 01:19:27ID:???CGIの中身をPerlで書きますよって意味なら問題ない。
>CGIとPerlでシステムを作る
って書き方だと
CGIからシステムコールでplなファイルを叩くイメージっぽい気もするかも
でも770の突っ込み自体おかしい。そこは素通りしとけw
0778nobodyさん
2007/01/12(金) 04:21:38ID:???まず始めに。
当方、Perlは殆どいじった事がなく、
HSPやCを少々組んだ事がある程度の知識で質問しているため、
常識的な事や的外れな事を質問していたら申し訳ありません。
google等で調べても何やっても上手くいかなかったので、
どうか皆様の力をお貸し下さい。orz
CGIで生成したページから別サイトへのリンクをクリックした時に、
「このURLへアクセスします。よろしいですか?」
と言ったような確認ページを挟んでアクセスするようにしようとしています。
具体的書くと、元ページの別サイトへのリンクは、
xxx.cgi?url=http://www.xxx.com/index.php?%A5%AC%A5
と言うように、リンク先のURLを<a>タグに埋め込んで自身のCGIに返すようになっています。
URL=の部分を取得し、そのまま確認ページの<a>タグに埋め込みたいのですが、
実際にやってみると?以降のURLエンコードされた部分が漢字や化けた文字として表示されてしまい、
綺麗なURLになってくれません。
渡されてきたURLを「http://www.xxx.com/index.php?%A5%AC%A5」のように、
そのまま表示するにはどうしたらいいでしょうか?
一応書いておくと、スクリプトはUTF-8Nで書いています。
0779nobodyさん
2007/01/12(金) 10:37:26ID:???0780nobodyさん
2007/01/12(金) 11:03:38ID:???とリンクに書いたのなら%A5などのURIエンコードされた部分が
デコードされてくるのは当たり前だろう。
http://www.xxx.com/index.php?%A5%AC%A5
というURIをuriという名前のパラメタで渡したいのなら本来は、
xxx.cgi?url=http://www.xxx.com/index.php?%25A5%25AC%25A5
とすべきなのでは?
0781nobodyさん
2007/01/12(金) 11:13:04ID:???0782nobodyさん
2007/01/12(金) 11:20:56ID:???http://www.example.com/hoge.cgi?a=xxx&b=yyy
みたいなものもありうるとするならば、渡す前の方で
適切にエンコードしておかないとだめですな。
0783nobodyさん
2007/01/12(金) 13:48:13ID:???なるほど…最初のリンクを生成する時点で%を%25にエンコードしておく必要があるんですね。
>じゃなきゃ表示時にもう一回urlエンコードすりゃいいだけの話
>http://www.example.com/hoge.cgi?a=xxx&b=yyy
>みたいなものもありうるとするならば、渡す前の方で適切にエンコードしておかないとだめですな。
urlパラメータに入るURLは、一般的なURLか前述したような文字コードを含んだURLが大半を占めるのですが、
ユーザー投稿式なので、何が来るかわからないという点を考えると、
最初のリンク生成の時点で適切なURLエンコードをしておいた方がいいようですね。
教えていただいた事を踏まえて、最初のリンク生成時に%を%25にエンコードする様スクリプトを組んだ所上手く動きました。
皆さんありがとうございます。
しかし、この方法だとhoge.cgi?a=xxx&b=yyyのようなものが来た時にダメとの事なので、
もう少し適切に処理させたいと思うのですが、またまた上手くいきません。
というか、どういう風に処理したらいいか分からないという感じです。
$elem =~ s/(https?:\/\/[\w\.\~\-\/\?\&\+\=\:\@\%\;\#\%\$]*)/<a href=\"$script?url=$1\">LINKはこちら<\/a>/go;
$elem =~ s/\%/\%25/go;
1行目は日本語混じりの文章($elem)の中にURLが張られた場合、それを「LINKはこちら」というリンクに置換させています。
そして、2行目で%→%25にしているわけですが、これだと当然問題が。
・本文中の文章の中にURL以外の%があっても置換してしまう。
・&などが来るとダメ?
「%だけじゃなくてちゃんと全部エンコードすればいいじゃないか」 とは思うのですが、
本文中から(https?:\/\/[\w\.\~\-\/\?\&\+\=\:\@\%\;\#\%\$]*)にマッチする文字列だけをエンコードさせる方法がわかりません。
どのようにしたらいいでしょうか?
本文中にはURLが複数箇所張られる可能性も考慮したいです。
度々の質問失礼しますが、ご教授の程よろしくお願いします。
0784nobodyさん
2007/01/12(金) 13:56:34ID:aFkw6ayOヒアドキュメントを使わない時に以下のように書けるコードは
どのように書けばいいでしょうか。
print NEW "mydoc = \"@document\";\n";
これでは出力されるファイルの方には@documentという文字が出る。"をエスケープでも同様
print <<"EOM";
mydoc = "@document";
EOM
これではmydoc = "@documentの中身";という形にならない。
print <<"EOM";
mydoc = @document;
EOM
0785nobodyさん
2007/01/12(金) 13:58:42ID:???use URI::Escape;
$本文 =~ s/(その正規表現)/uri_escape($1)/ge;
てな感じでいいはず
0786nobodyさん
2007/01/12(金) 14:06:42ID:???前者の書き方でいいはずだが。試すときになんか勘違いしてない?
% cat a.pl
@document = qw(unko chinko);
print "mydoc = \"@document\";\n";
print <<"EOM";
mydoc = "@document";
EOM
% perl a.pl
mydoc = "unko chinko";
mydoc = "unko chinko";
0787nobodyさん
2007/01/12(金) 14:13:10ID:???'mydoc = "' .@document. '";' ."\n";
0788784
2007/01/12(金) 14:26:05ID:???まさに勘違いしていたようです(滝汗)
前者であってました。すみません。ありがとうございます。
>>787
さんくすです。
0789nobodyさん
2007/01/12(金) 15:27:30ID:???おぉおおお! できました!
ありがとうございます!
こんな一行で出来る事だったんですね。
これで目的のスクリプトが組みあがりそうです。
2度の長文質問に答えてくださった方々、本当にありがとうございました。
0790nobodyさん
2007/01/13(土) 00:05:27ID:???拡張子が.plのスプリクトの動かし方を教えてください!!!
ActivePerlをインストールしたのですが、そこからどすればいいのか分かりません・・
.plファイルをダブルクリックしてもコマンドラインが一瞬でて消えるだけです・・
通常のアプリのように直感的に扱いたいです。コマンドライン?から起動とかじゃなくて
あと一つ質問です。
拡張子が.plのファイルの拡張子を無理やり.cgiに変更した場合、cgiとして正しく動作しますか? サーバーレンタルしたらそこで使えますか?
perlに詳しい方、厨房にも分かるように教えてください!!!
どうかお願いいたします。
0791790
2007/01/13(土) 00:13:42ID:???ActivePerl-5.8.8.819をインストールしてから.plをクリックしたら、
D:Perl\bin\perl.exeとなってコマンドラインがでてきました。
コマンドラインは消えませんが、ここからどうすればいいのか・・・・
助けてください
0792nobodyさん
2007/01/13(土) 00:17:33ID:???ここは「プログラムを作る人」の為の板でありスレッドです。使う側の質問は板違いです。
0793nobodyさん
2007/01/13(土) 00:20:49ID:???UNIX鯖レンタルしてそこで動かそうと思うですが、何をインストールすればよいのでしょうか?
0795nobodyさん
2007/01/13(土) 21:51:44ID:wEKIwJY9C言語でいうところの、getch() に相当する関数はないでしょうか?
WebProg板って事なので、CGI経由になるのかしら?
それならJavaScriptを使った方がよさげの悪寒♪
0798795
2007/01/13(土) 22:08:17ID:???そっちへ移動します。
0799nobodyさん
2007/01/14(日) 22:03:27ID:7dLarnkvforeach my $key (keys %target){
my $value= $target{$key};
if($key == 1){ next OUTER }
else{ next OUTER; }
}
}
上記と下記は同じ流れ方をすると思っていたのですが、下記のwhileの場合、
どうも%targetを最上層のforeachから再度読み出すとハッシュのはじめから
よんでいないような挙動を見せます。
こちら何かアドバイス等ございます際にはいただけますと幸いです。
OUTER: foreach my $tmp (@tmp_data){
# my %target = %common::target; を入れて初期化すると上記同様の流れになる
while(my ($key, $value) = each(%target)){
if($key == 1){ next OUTER }
else{ next OUTER; }
}
}
0800nobodyさん
2007/01/14(日) 22:11:17ID:???0801nobodyさん
2007/01/14(日) 22:17:51ID:???早速のご返答有難うございます。
そうだとは思うのですが、これに関する説明がググってもどうも
出てこなかったため、質問させていただきました。
ちなみに、PHPの場合では以下がございました。
おそらくこういうことかとは思いますが。。
ttp://asakura.g.hatena.ne.jp/asakura-t/20051116/1132113906
0802nobodyさん
2007/01/14(日) 22:27:08ID:???したら書いてあったけど。ググるだけじゃなくて、マニュアルも読もう
There is a single iterator
for each hash, shared by all "each", "keys", and "values" func tion calls
in the program; it can be reset by reading all the
elements from the hash, or by evaluating "keys HASH" or "values HASH".
0803nobodyさん
2007/01/15(月) 05:27:53ID:???$::FLAG{'cache'}
というのがあったんですけど、
この時の「$」はいったいなんでしょうか?
0804nobodyさん
2007/01/15(月) 08:15:52ID:???0805nobodyさん
2007/01/15(月) 13:31:24ID:???俺的には高度な話題が多くなったなぁ、みんな凄いわ
0806nobodyさん
2007/01/15(月) 20:35:55ID:???:: はパッケージを指定する為の演算子です。
$Pkg::var のように書くと Pkg パッケージのパッケージ変数 $var を参照できるのですが
パッケージ名を省略すると、デフォルトのパッケージである「main」を指定した事になります。
our $hoge = "In main"; # ← main パッケージの $hoge
package Sandbox;
our $hoge = "In sandbox"; # ← Sandbox パッケージの $hoge
print $hoge, "\n";
print $::hoge, "\n";
print $Sandbox::hoge, "\n";
print $main::hoge, "\n";
0807nobodyさん
2007/01/16(火) 10:45:24ID:Vliwd/jI秒数を日付にするのはありますが、
秒数が何時間とか、何日分に当たるのかとかいった変換を行うものはありますか?
3600S→1Hのようなかんじで。
0808nobodyさん
2007/01/16(火) 10:47:49ID:???■ このスレッドは過去ログ倉庫に格納されています