1 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 22:54:12 ] "The duct tape of the Internet" こと、Perlについての質問箱です。 "There's more than one way to do it" ということで、Perlの奥深さについて皆で語り合い、追求してまいりましょう。 CGIについての質問は板違いです。WEBプログラミング板でどうぞ。 CGIとPerlの区別がつかない人もWEBプログラミング板に行ってください。 (WEBプログラミング板 pc8.2ch.net/php/ ) CGIの質問は答えがPerlと全然関係ない話に帰着する場合が多かったりするのでWEBプログラミング板に行って聞いたほうが得ですよ。 このスレでは(CGI以外の)純粋にPerlのみに関係する質問を取り扱っていこうと思います。 スレ違いの質問にはスルーか、速やかな誘導をお願いします。 www.perl.org/get.html ● 2006/12/21現在の最新版: 5.8.8 ● 2006/12/21現在の開発版: 5.9.3 前スレ Perlについての質問箱 29箱目 pc11.2ch.net/test/read.cgi/tech/1166708139/ リンク集は>>2-3 過去スレは>>4
556 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 16:45:48 ] 普通に、こんなんでいいでしょ。 ---- package Foo::Bar::Baz; sub new{ bless [] } sub qux{ print "qux!!" } package main; eval{ my $klass = "Foo::Bar::Baz"; my $obj = new $klass; $obj->qux; };
557 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 16:49:53 ] eval EXPR はインジェクションの可能性があるからなるだけ使わんほうがよいね。
558 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 19:08:29 ] >>557 この一連のコードで具体的にどうやって?w
559 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 19:20:02 ] そりゃサンプルコードなんだから汚染された文字列が紛れ込む分けなかろう
560 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 19:59:57 ] やはり妄想で危険を煽っただけか。その妄想を極めればプールに入っただけで受精するとか言い出す外基地になれるよ。
561 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 20:49:22 ] もうゴールデンウィークはおわったよ?
562 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 06:21:05 ] 影さん「evalがあればどんなプログラムでも書けるぜ!」
563 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 13:44:05 ] 文字列eval使わなくてもいいところで使うのはあんまり美しくないと思うけどな。 >>555 のも eval { require $class }; のほうが綺麗だと俺は思う。
564 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 15:48:00 ] NET::POP3とMIME::Parserを使ってメールの送信元で振り分けて処理をするプログラムを 作りたいんだけど、headのfromってメルアドが入ってなかったりしてどこをみたらいいかわかりません。 送信元メルアドを参照するにはどこをみたらいいんでしょうか?
565 名前:デフォルトの名無しさん mailto:sage [2007/05/14(月) 17:44:40 ] >>564 rfc2822を読め
566 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 00:07:34 ] >>563 それを実行したことある?
567 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 10:45:02 ] >>565 それじゃ何の答えにもなってないだろ馬鹿 >>564 ヘッダに送信元が正しく入っているかは保証されてないから入ってないときは取りようがないよ
568 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 11:15:16 ] >>565 これからは全ての質問に「仕様書読め」「解説書読め」で解決していくんですか?
569 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 11:26:10 ] Perlの質問じゃなくてメールの仕様に関する質問だからしゃあないのでは。 確かに不親切だけどね・・・
570 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 13:35:28 ] >>568 なぜそうしたいの?
571 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 14:19:50 ] 570は小学校の国語をやり直した方がいいと思うの
572 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 14:34:27 ] いま算数やってるの
573 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 14:38:52 ] >>565 にレスしてる奴って全部 >>564 の自演だろ。 メールの仕様に関してはスレ違い。
574 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 14:45:29 ] おお、帰ってきた。>>565 が黄泉の国から帰ってきた。
575 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 15:22:10 ] >>573 なんで>>564 に>>567 が自分で回答すんだよw まあみんなやさしめに行こうよ。
576 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 15:37:37 ] 英語こわいからヤダヤダ だからRFCなんか読むのもヤダヤダ
577 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 15:51:24 ] もしかして「RFC」という文字列が荒しを板中から集めてる?
578 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 15:55:46 ] 全然荒れてねえだろwww
579 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 16:17:56 ] >>565 は、RFCを読んだことがあるのを自慢したいだけ。
580 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 16:19:50 ] 自慢てwwwゆとり乙www
581 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 16:52:34 ] >>575 他人を装って自分を擁護するのって結構あるからな。 別に珍しくもないから、一応そう書いただけ。
582 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 17:18:06 ] 標準規格の類を挙げると必ず変な流れになるな。
583 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 17:28:10 ] めんどくせぇから書きたいように書けよ
584 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 21:53:54 ] 昼間子供が書き散らしたようだな
585 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 22:52:22 ] >>584 やっと起きたか、ひきこもり君
586 名前:デフォルトの名無しさん mailto:sage [2007/05/15(火) 23:36:02 ] どこを読めばわかるよってのも教え方の一つだと思うんだ
587 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 00:07:36 ] >>579 RFCを読んだことが自慢になると思っている時点で(ry >>586 ざっとでも一通り目を通しておかないと他の部分の実装ですぐに詰まってまたスレ違いの質問してくるでしょ。 スタンドアローンアプリなら好きなように実装汁だけど そもそもネットワークアプリは相互に協調するものなんだから 「とりあえず動いている」「自分だけよければいい」という存在は迷惑だろ。
588 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 00:17:48 ] どうせただのメールフィルタなんだからどうだってかまわんだろう
589 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 05:26:48 ] まぁ、仕様書は基本としても、それを守ってない場合も多々あるわけでw
590 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 07:24:45 ] そうそう、RFC読まなくていい言い訳は 探せば結構見つかるよねw
591 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 10:32:13 ] でもまぁ読むのだるいじゃん。 遠回りすぎるし。 必要だとは思うが。
592 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 13:12:16 ] 104で電話番号聞いたら電話帳読めって返すようなもんだもんな
593 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 13:14:50 ] >>592 違うだろ。携帯販売店にどっかの会社の電話番号を聞くようなもん。 んなもん、104で聞け、つまりスレ違いだ。
594 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 13:24:53 ] ここを104番に例えられると認識している人間がいるのも怖ろしいな。
595 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 14:02:54 ] 交番で道を尋ねたら「地図を見れ」ってのがしっくりくる
596 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 14:18:25 ] 104や交番は仕事だけど、ここはただの掲示板だ
597 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 14:58:15 ] 道に迷っている人に通りすがりの人が「地図板はあそこにある」と言ったら、 別の通りすがりの人が食ってかかっているわけか。 「地図の見方を知ってるのを自慢したいだけ!!」と叫びながら。
598 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 15:44:27 ] 質問させて下さい [初めてのPerl 3版]という本を読みながら勉強しているのですが、 3章の練習問題をしていて疑問に思いました。 @list = qw/ a b c d /; print @list . "\n"; #こうすると、リストの個数が表示される。 print @list; #こうすると、リストの内容が表示される。 print @list , "\n"; #こうすると、リストの内容が表示される。 上記のように、3つの記述ほうほうで内容が変わってきます。 私が疑問に思ったのは、どうして"."で連結すると、リストの個数が 表示されるのでしょうか? また、","が急に出てきたのですが、どう いった意味があるのでしょうか? すみませんが、宜しくお願いします。
599 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 15:51:33 ] >>565 が暴れてます
600 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 15:59:25 ] 義務ってわけじゃないだろうけど質問スレなんだから質問に答えたくない奴は スルーすればいいだけなんじゃねーの? それをわざわざ嫌味ったらしく書き込むから多いから荒れるんだよ。 黙ってろよ。
601 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 16:15:12 ] >>598 print @list . "\n"; まず、配列(ここでいう@listね)をprintすると配列の中身をすべて出力するのね。 それで↑は、@listと\nをつなげてひとつの文字列としてる。 配列はスカラ参照するとその要素数を返すから、「配列の要素数+改行」というひとつの文字列として出力される。 print @list; これは上で言ったとおりそのまま配列の中身をぶちまける。 print @list , "\n"; printは出力対象をカンマで区切って複数指定できるのね。 だから、↑の場合は一つ目の例と違って@listと\nは別物として並列に並んでるのね。 print @list; print "\n"; と同じというわけ。 だから配列の中身+改行となる。
602 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 16:18:22 ] >>600 逆だろ。「RFCを読め」という回答があっという間に返ってきたのに、 それを気に入らなかった奴が騒いでいる。わざわざ嫌味ったらしくね。 黙っていればいいのにね。
603 名前:598 mailto:sage [2007/05/16(水) 16:32:22 ] >>601 スカラーとして参照されたから、要素数を返したんですね。 詳しく説明していただけたおかげで、理解できたと思います。 ありがとうございました。
604 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 16:36:58 ] >>601 部外者だが俺も勉強になった。ありがとう。
605 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 17:27:58 ] >>567 と>>568 が発端になっているわけか。 まあみなさん、不足だと思ったら、攻撃しないで補うということで。
606 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 19:05:20 ] ボク今夜寝る時、ママにRFC読んでもらうんだ。
607 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 19:07:15 ] フーン
608 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 19:33:23 ] ⊂二二二( ^ω^)二⊃ フーン
609 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 19:43:17 ] まぁ優しい俺が貼ってやるよ ttp://www5d.biglobe.ne.jp/~stssk/rfcjlist.html え、みんなこれ全部読んだの??
610 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 19:48:27 ] 荒らしてるのはいつも質問者 これ、豆知識な
611 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 19:57:54 ] そうなの?
612 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 20:17:47 ] そういえば質問者のフォロー全然ないな
613 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 21:26:11 ] 暴れ杉だろう・・・ 業務で使うときでも読まないのかだぜ?
614 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 21:34:58 ] さらに優しい俺が、>>565 が指摘した該当文書を>>609 から晒す www.puni.net/~mimori/rfc/rfc2822.txt 次の人: 上の文章からFromの仕様が書いてある文章を見つけ、行番号等の場所を報告 さらに次の人: 的確に抜粋して、ここに書く 以上で当スレのミッションは終了となる。
615 名前:デフォルトの名無しさん mailto:sage [2007/05/16(水) 21:51:39 ] そーいや、番号がすぐ出てくるRFCって822(2822)と1149くらいだな、俺。
616 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 00:28:17 ] >>565 は、rfc2822読むのをやめへんでぇ〜
617 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 02:12:42 ] RFC自重
618 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 04:34:55 ] CRC556
619 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 07:08:02 ] そろそろスレ違いで引っ張るの止めないか?… RFC 読もうが読ままいが、perl についての質問に該当しなかった訳だし RTFM ってのは最低限わきまえとく事だし (ようするに俺も RFC 嫁よって思ってる訳だけど)
620 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 10:16:00 ] . ______________ | i┬┬┬┬┬┬┬┬┬┬┬┬┬i | | |┼ ,r-l^i ‐┼y'⌒~}ー┼y'⌒~}ー┼| | | |┼と::_;;;:_}┼じ;_;:;ナ┼ヽ;:;:: :;;:;:;)┼| | | |┼┼┼┼┼┼┼┼┼┼┼┼┼| | | |┼f_:::_:;;;り┼{:;;;::_;;う┼( ;;:;:;:"")┼| | | |┼く:;;;_:;;Jー|ーじ;_;:;ナ┼f_::_::;;;;り┼| | | |┼┼┼┼┼┼┼┼┼┼┼┼┼| | |  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ .|  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ とりあえず焼肉でも食って落ち着こうぜ
621 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 10:40:54 ] >>609 小説を読むわけじゃないんだから、必要なときに必要な箇所を読むんだよ。
622 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 19:06:20 ] つうか今回の事でRFCが頭に入ったww
623 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 20:59:23 ] パッケージの名前は「foo」のような小文字にするのか、それとも「Foo」のように 大文字で始めるのか、どちらがいいのでしょうか。 perl5.8.8のライブラリを見るとどちらもあるのですが、Perlの流儀だとどのような命名規則がいいのでしょうか。
624 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 21:24:06 ] >623 foo みたいに小文字で始まってるのは pragma 扱いだと思う。
625 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 21:28:28 ] 根拠見っけてきた。 perldoc perlmodlib より >Package/Module names are an exception to this rule. Perl informally >reserves lowercase module names for 'pragma' modules like integer >and strict. Other modules normally begin with a capital letter and >use mixed case with no underscores (need to be short and portable).
626 名前:デフォルトの名無しさん mailto:sage [2007/05/17(木) 23:08:09 ] pragmaが何かわかりませんが、とりあえず自作のパッケージは大文字で始めるのがいいということでしょうか。 どうもありがとうございます。
627 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 01:56:34 ] use strictとかは使ったことあるかお?そーいうことだお
628 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 02:52:38 ] pragmaっつーのは端的に言えばインタープリタの動作を変えるもんだ。 よく見かけるのは"strict", "warnings","lib", "overload", "vars", "constant", "blib"あたりかな。 あとは、マルチバイト圏の人が"utf8", "encoding", "open"を使ってたりすることあるな。 P.S 分からないことは恥ではない、分からないことを放置することが恥なのだ
629 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 03:08:16 ] baseも仲間に入れてあげてください;;
630 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 03:14:05 ] あ、めんごw baseはOOで継承するときに使うやつな。 よく使うのに、度忘れしてたw
631 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 20:35:21 ] 有限の整数の集合の中から偶数だけを取りだしてその数を2倍するといった (1 2 3 4 5 6) -> (4 8 12) みたいな処理を簡潔にperlで表現したいなら、どのように書くんでしょうか?
632 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 20:42:42 ] map { $_ * 2 } grep { $_ % 2 == 0 } (1,2,3,4,5,6)
633 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 21:20:39 ] 自作のperl script にドラッグ&ドロップして使いたいんですが、 皆さん、どうされてます? 外部補助ツール等を使用しない方法で、perlのみで行いたいんです。 ググッてもうまくヒットしないので…恐縮ですが教えてください。
634 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 21:22:10 ] >>633 すいません。WindowsXPでactiveperlの環境です。
635 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 21:31:03 ] DropHandlerや{60254CA5-953B-11CF-8C96-00AA00B8708C}でググるといいと思うよ。
636 名前:デフォルトの名無しさん mailto:sage [2007/05/18(金) 21:39:21 ] >>635 OS側の設定だったんですね。助かりました。
637 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 16:16:37 ] >>632 mapもgrepもおなじものだが、意味的に条件で抽出のときはgrepを使いたくなるな。 式が偽になったものは返値には残らないので map { $_ % 2 == 0 && $_ * 2 } ( 1,2,3,4,5,6); でもOK
638 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 16:46:07 ] いや、それだと空文字がたくさん残るだろ。 map { $_ % 2 ? () : $_ * 2 } (1,2,3,4,5,6); としないと。
639 名前:デフォルトの名無しさん mailto:sage [2007/05/19(土) 16:47:21 ] >638 =~ s/空文字/空文字列/;
640 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 00:28:19 ] mapとgrepが同じとな?あなおそろしあ
641 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 01:38:54 ] map !($_&1)&&$_<<1||()=> ( 1,2,3,4,5,6) 配列に 0 が入ってたらどうするんだろ 想定外でどうでもいいのかな? これだと(当たり前だけど)要素の値が 0 の時には戻り値無し。
642 名前:631 mailto:sage [2007/05/20(日) 12:31:03 ] ありがとうございます。 Lispを勉強して、次はPerlにスイッチしたいと思っていて、なるべくLispスタイルで プログラミングできるようにしたいと思っているんですが、二つ以上のリストを元にして 結果を返すような (1 2 3 4 5) (6 7 8 9 10) -> ((1 6) (2 7) (3 8) (4 9) (5 10)) といった処理はどうするのでしょうか?mapの使いかたを見ると使えるのは$_だけみたいなのですが。
643 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 12:40:10 ] 普通にmapでできるだろ map { $a = $_; $b = shift @b; 処理 } @a
644 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 12:43:41 ] どうすれば納得するのか知らんが、 とりあえずリファレンス使わないと、リストのリストとかはできんと思うが。
645 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 14:06:29 ] $,=q/,/;$\=qq/\n/; print @$_ for foo([1 .. 5], [6 .. 10]); sub foo { map [map shift @$_, @_], (1 .. (sort map scalar @$_, @_)[-1]) } こんな感じか。
646 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 14:09:46 ] sub foo { map [map shift @$_, @_], (1 .. (sort {$b <=> $a} map scalar @$_, @_)[0]) } 間違えた。
647 名前:デフォルトの名無しさん [2007/05/20(日) 15:07:14 ] >>642 っ[List::MoreUtils]
648 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 15:27:33 ] ある文字列を一文字単位で全部分解して、配列に格納させたいのですがうまくいきません。 (空白も含みます。) $text = 'aあ かf漢字'; 例えば、上の$textを分解して、 @array = ('a', 'あ', ' ', 'か', 'f', '漢', '字'); のような配列を作りたいのです。 splitを使って @array = split(/[\w\s]/, $text); としたのですが、何も格納されずうまく出来ませんでした。 どのようにすれば出来るでしょうか?
649 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 15:35:50 ] use encoding cp932; # ソースの文字コードにあわせる $text = 'aあ かf漢字'; @array = split(//, $text);
650 名前:648 mailto:sage [2007/05/20(日) 15:47:43 ] >>649 何も指定しないと一文字単位で分解されるんですね。splitは。 その後、 while($text){ push(@array, substr($text,0,1,'')); } といったコードを思いついたのですが、 649さんのコードの方がすっきりしてるのでそちらを使わせていただきます。 ありがとうございました。
651 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 16:32:30 ] >>650 俺は初心者で、この前俺もそういうコード考えて使ってみてわかったんだが、 substrは1バイト単位で長さ見てるけど日本語は2バイトコード使ってたりしてて、 結局その>>650 みたいなコードでひらがなやカタカナや漢字取り出すときにsubstr($text,0,1,'')ってところで2バイト中の1バイトしか取り出せなくて中途半端になるんだよな。 2バイト文字限定なら取り出す長さを2バイトにすれば問題無いし、アルファベットや数字は1バイトで問題無いけど。 >>649 のコードなら、俺は大丈夫なのかどうかは知らないけど、なんとなく大丈夫っぽい感じする。
652 名前:デフォルトの名無しさん [2007/05/20(日) 16:39:13 ] >>651 substrのOFFSETやLENGTHの単位は文字数だから、>>650 でも use encodingで文字コードを適切に指定すれば何の問題もないよ。
653 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 16:59:52 ] >>652 トンクス 参考書見て、substrの説明に「文字数ではなくバイト数で取っていることがわかります。日本語の入った文字では使わないようにしましょう」 ってあったから、substrでは永遠に2バイト文字と1バイト数字アルファベットは同時に処理できないものと思ってました。 use encodingで指定すればsubstrでも2バイト文字部分は長さ1となるんですね。 use encodingでコード指定するのが大切ってことを理解しますた。
654 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 17:20:46 ] その機能入ったのはつい最近(といっても5年前だが)だから、古い本だったら書いてないだろうし、 厚みで値段稼いでるような本なら、そのあたりいい加減でも不思議じゃないな。
655 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 17:45:13 ] >>654 なるほど、確かに初版第1刷が2003年ってなってる。 初心者質問ですが my@b=("$a[1]","$a[2]","$a[3]","$a[4]","$a[5]","$a[6]","$a[7]","$a[8]"); ↑ こういう書き方をもっと短く書けませんか? 既に@aには$a[0]や$a[9]から先にも変数が入ってる状態で、$a[1]〜$a[8]までを@bに入れたいです。 $a[1〜8]みたいな表現が存在するなら表現方法を教えてほしいです。
656 名前:デフォルトの名無しさん mailto:sage [2007/05/20(日) 17:57:06 ] >655 @a[1..8] で OK。 キーワードはスライス。 ところで、なんで "" で囲ってるの?