Perl初心者スレ(マジレス回答)
>>222 PHPのクラスやトレイトを Perl4でどうやって実装するの? 2つも3つも糞スレ建ててんじゃねーよゴミPerler >>226 まず必要あるかないかは、必要あるという前提にしましょう。 別にPHP専用用語ではないのだから、世界的には必要あるという流れです。 その前提で、どうやって実装するのか答えてください。 これからは質問者が来ても全部>>230 のレスしか返りません。 #!/usr/bin/perl $buffer = $ENV{QUERY_STRING}; @pairs = split( /&/, $buffer ); foreach $pair ( @pairs ){ ( $name, $value ) = split( /=/, $pair ); $FORM{$name} = $value; } $A = $FORM{name1}; $B = $FORM{name2}; print "Content-type: text/html\n\n"; print << "_EOM_"; <html> <body> A*B = $A * $B </body> </html> _EOM_ 上みたいなプログラミングを組んで、A=とB=にそれぞれ任意の数字を入れるとA*Bの答えが表示されるようにしたいんですが、 いざ実行してみても上のプログラミングがそのまま表示されるだけで正しい結果が得られないのですが、 どうしたらよいでしょうか。 >>232-234 おかしいのはお前の頭だ 基本的なこともできてないくせに他人に質問とか頭腐ってんじゃねーの >>234 >>232 ,>>233 が板違いだということに気付かないのがおかしい。 平気で板違いの書き込みをするキチガイは迷惑。 お前みたいなクズはリアルでも迷惑がられてるんだから自覚しろ。 >>232 =基礎をやらずにいきなりプログラミングから入る典型的なゴミ 目的達成までの手順すら把握できてないからプログラミング以前の問題 何やっても駄目な奴のパターン 人生乙 >>237 人生乙は言い過ぎ。 高卒以上なら人生乙だけど、 >>232-234 みたいな小学生は 中高で挽回できる可能性がある。 >上みたいなプログラミングを組んで、A=とB=にそれぞれ任意の数字を入れるとA*Bの答えが表示されるようにしたいんですが、 >いざ実行してみても上のプログラミングがそのまま表示されるだけで正しい結果が得られないのですが、 日記はブログに書け >どうしたらよいでしょうか。 今すぐプログラミングやめろ そして二度とくるな Perl系スレは質問者が叩かれると張り切って答える奴がいるから 質問したら自演で自分を叩くのが常套手段 >>234 スレ違いのネタで荒らす以外やることないわけ? スレ違いどころか板違い 頭が悪いにも程がある 発達障害かもな >>232 PHPなら一瞬で片付く案件 <?php $x = $_GET['name1'] * $_GET['name2']; echo( $_GET['name1'] . " * " . $_GET['name2'] . " = " . $x ); ?> >>234 入門書1冊読めば大抵書いてあるはずだが・・・ 本1冊買えない乞食か? そんなに金がないならプログラムなんかやめてバイトでもしたほうがいい 日雇いでも書籍1〜3冊買える金もらえるぞ 初心者スレってかいてあるだろーが字よめねぇのかよカス >>248 だよね。 初心者だったらスレ違いだろうが板違いだろうが 気違いだろうが許されるよね。 >>250 板違いは許されんよ。 基地外はスルーだよ。 頭悪いのはテキトーに対応するべきだよ。 初心者は自力で解決しようとしない奴のことではないぞ >>232 A*B = $A * $B の部分を A*B = @{[ $A * $B ]} >>253 板違いのゴミ(>>253 )にエサを与えないでください。 エサを与えるとゴミ知能の>>253 が味をしめて今後も荒らしに来るようになります。 >>255 を見れば分かるが 「板違いは荒らし」という人間 = 荒らし この思考回路がPerl厨 >>256 残念ながら、思考回路も間違ってるしPerl厨でもないなあ 板違いの指摘そのものは問題ではないよ、実際のところ >>232 は板違いだしな ただ板違いへの対応ってのは ・板違いと指摘する ・徹底してスルーする であるし >>254 が板違いのゴミと呼ぶ >>253 は 「板違い」ではなく「板違いに誤った対応をした人物」でしかない。 しかも内容は相手を煽るような罵倒語ばかり。 誤った煽りは、結果的にはその人物の発言を増やすことになる。 だから >>254 も荒らしってことなんだよ。 ああ、荒らしにレスするのも荒らしだからな 俺が荒らしと言われても、勿論構わないよ? 荒らしにレスしたことには間違いないしな。 >「板違いは荒らし」という人間 = 荒らし Perl厨はいちいちこんなこと考えてないと思うぞ。 単に 気に入らない奴=荒らし ってことだと思われる。 質問させてください。 現在、NEなのですが、社内SEを目指しています。 その時に、サーバ作業を簡単に処理させる言語が必要にりそうなのですが、 Perlは向いていますでしょうか? 掲示板とかを作るつもりはありません。作業の効率化が目的です。 隣の席のプログラマさんに聞くと、 Perlは古くてCGIにはもう未来がないよー、ってお勧めされないのですが… >>259 IT系で上を目指そうって人間に何でPerlなんて選択肢があるわけ? そこらへん考えたほうがいいよ。 SEならITに関しては常に最新の動向を知るためにアンテナ張ってなきゃならないし、 アンテナ張ってればPerlがいかに駄目かというこてが分かる。 SE目指すならその辺りを自分で調べられるようになってたほうがいい。 >>259 PHPのほうがいい 作業を簡単に処理させるスクリプトとかって最初はそのつもりがなくても便利ならそのまま他のものを作るときに組み込んだりする エンジニア以外でも有用な場合はWebインターフェースにして提供することなるけどその場合にPHPで書いてあるとインターフェース作るだけですぐに提供できる >>259 マジレスすると今現在はRuby 但し3ヵ月後、半年後は分からん 自分でその情報を追えないならSEはやめとけ 今現在既に追えてないみたいだけど >>259 そもそもその文脈でCGIは全く関係ないよ。そこに気付けないなんて釣りだろ? >>260-263 ありがとうございます! javaか、PHPか、perlで悩んでました。 色々調べると、PHPが入り易そうなので、、 明日、本屋に行って、決めます。 ※CGIは、掲示板とか作るのであって、検索とかするのとは違うなあ、 と思いながら、プログラマさんの意見を聞いていました。 PHPが第一候補だったのですが、某サイトで、 PHPは、WEB系以外には、まったく意味がない、との様なコメントがあり、困りました。 javaは、いきなり入るには、まだ敷居が高いかなと悩みました。 perlは、単に簡単な、検索や置換には適しているようなコメントで一気に候補に挙がりました。 これらから悩んでいたんです。コメントありがとうございます。 >>266 そのコメントとやらの投稿日時と信憑性も確認しろよ まさか去年の夏以前の投稿で、しかも第一線で活躍してい"た"奴の投稿じゃないだろうな 3ヵ月以内の投稿で、しかも第一線で活躍してい"る"人の投稿なら信用しろ そしてそういう人ならまずPerlを候補に挙げることはない まぁ第一線で活躍してるわけでもない俺のこんな匿名の投稿も信憑性がないだろうから 第一線で活躍してる人がPerlなんか使わないということは自分の目で確認してくれ >>267 投稿日時、第一線は確認していませんでした。 すみません、助言、ありがとうございます。 >>266 PHPがWeb系以外に使えんのは本当 Perlでも良いけど、RubyやPythonも有効だよ まあ、まずは最初にシェルスクリプトだけどね と言うか、PerlスレにPHPのこと聞く時点で釣り >>269 >PerlとLispが結婚して隔世遺伝が黒魔術で生まれた言語。 >Javaは硬度8くらい、Pythonは6くらいになるのに対して、Rubyは3くらいになる。 との記事を見つけました。いつの記述かわからないのですが(汗) Rubyも明日、本屋で漁ってみます。ありがとうございます。 >>270 すみません。退散します。 みなさん、マジレス、ありがとうございます。 >>232-234 _EOM_なんて使っちゃだめだよ。見づらい。 print "Content-type: text/html\n\n"; print "<html>"; print "<body>"; print "A*B = $A * $B"; print "</body>"; print "</html>"; print "あいうえお"; ↑これを文字コードをeuc-jpで保存してコマンドプロントからこのファイルを実行して コマンドプロンプト上に文字化けなく あいうえお と出力させるにはどういうコードを追加すればいいの? >>274 はちょっと疑問に思っただけで何かするのに必要なワケじゃないので無理して 答えようとしないで下さい。たぶんちょっとググった程度で分かるようなことではないです。 >>276 うおお、すごい、あっさり出来てしまった・・。 今日一日↓こんなのでやろうとして泥沼にハマってました。 use encoding "euc-jp"; binmode STDOUT, ':encoding(cp932)'; スーパーハカーさんどうもありがとう〜 print +(3,2,1,),"\n"; ↑これ、+記号を消すと改行が反映されなくなるんですが、この+記号って どういう意味ですか?ググるためのキーワードだけでもおねがいします。 ググると +{ } は出てきたんですが +( ) はなぜか見つかりませんでした。 >>278 (print(3,2,1)), "\n"; +() は scalar () とほぼ同等。 +{}は、ブロック中の戻り値(?)をスカラーとして評価しますって意味。 +()は、リストとして評価しませんよーって意味。 perldocのperlopの Terms and List Operators (Leftward) と Unary "+" を参照してください。 >>279-280 なるほど、+{ } と同じような使い方だったんですね、ありがとうございました。 perldocもこれから読んでみます、多謝。 windowsの隠しファイルを判別する方法を教えてください >>282 http://search.cpan.org/dist/Win32-File/File.pm use Win32::File qw(GetAttributes HIDDEN); GetAttributes($ARGV[0], my $attr) or die $!; print +($attr & HIDDEN) ? 1 : 0; 掲示板のCGIを設置したんだけど、<a href="./bbs/mtbbs.cgi?">って感じにリンクするようにして、http://172 では、ちゃんと作動したんだけど、 実際にFTPに転送すると、作動しないどころか画面が写らない 500エラーが出てくる 原因に関してはまだわかんなくて、調べてるんだけど、そもそも思ったのが<a href="./bbs/mtbbs.html">ならまだしも<a href="./bbs/mtbbs.cgi?">なんて、直にリンクすることなんてできるの? >>285 リンクはできる 動かない原因は別にある 知恵袋で質問したら回答どころか閲覧すらなさすぎワロタ・・・ 質問してもどうせまともに答えてくれないんだろうな どこ行っても解決しないわ 複数のRSSフィードを結合して一つのRSSを生成したい。 その際、「生成されたフィード記事のリンクURLすべてを任意のリンク先に指定する。」 このやり方を教えてください。 XML::FeedPP、XML::TreePPというモジュールを用い、下記のCGIプログラムを使用して自動更新する1つのフィードを生成するところまでは出来ました。 しかし、他の部分はチョロチョロと変えることができるのですが、記事リンクだけはどうしても変えることができません。全部の記事リンクを、ある1つのリンクに変換したいだけです。 #!/usr/bin/perl use XML::TreePP; use XML::FeedPP; my $feed = XML::FeedPP::RDF->new(); $feed->merge( "結合したいrssフィード1" ); $feed->merge( "結合したいrssフィード2" ); my $now = time(); $feed->sort_item(); $feed->pubDate( $now ); my $atom = $feed->to_file( "index.rdf", "UTF-8" ); print "Content-type: text/plain\n\n"; print "出力完了\n"; 使ってるレンタルサーバーはロリポップです。 複数のフィード(RSS、Atomなど)をまとめるCGI http://blog.audiofan.net/archives/491385.html [Perl] XML::FeedPP - RSS・RDF・Atomフィードの解析・生成・変換・結合 http://www.kawa.net/works/perl/feedpp/feedpp.html XML::FeedPP https://metacpan.org/pod/XML::FeedPP#feed-remove_item-index-or-link http://search.cpan.org/ ~kawasaki/XML-FeedPP-0.43/lib/XML/FeedPP.pm ttp://s1.gazo.cc/up/88224.jpg こういった10行で一組のデータの中に --- 市民の... yerles warrior --- というパターンが多くあります。 マッチ検索したいのは --- 市民の... dog warrior --- というパターンです。 "市民"という文字を見つけたら 2行下に "dog"という文字があるならば その、"市民の..."を出力して欲しいです。 ファイル読んで単純マッチするぐらいしか今はできません open (my $in , "<" , "./cdatan_5_101.s2"); while (<in>){ if (/yerles/){print "matched\n"} } close $in; } 凄い。ありがとう。 出てきたshiftとか勉強してみます 感謝 どこにshiftの出番があるのか?と思ったらそう言うことか。 普通に配列に突っ込んで、マイナスのインデクスでアクセスすりゃいいやん。 $ perl -Mvars=@a -lne 'push @a, $_ ; next if !/dog/ ; next if $a[-3] !~ /市民/ ; print $a[-3]' File メモリ喰いが気になるのなら、 $ perl -Mvars=%h -lne '$h{$.} = $_ if /市民/ ; next if !/dog/ ; next if ! defined $h{$. - 2} ; print $h{$. - 2}' File とか、で節約すりゃいい。、、、けど、今時そんなの気にする必要もないだろ 上のワンライナーでやってる事は、 $ perl -MO=Deparse -Mvars...略 でわかる。 恰好をつけるなら、リングバッファでも書くところですが、回答としては、あんまりだと思ったので。 2行固定なら、別に使わなくても。 perl -ne '($_, $x, $y) = ($x, $y, $_); $y =~ /dog/ && /市民/ && print' File 何も考えなくていいなら、正規表現でバッサリ。 perl -e 'print((local $/ = <>) =~ /(^.*市民.*\n).*\n.*dog/gm)' File >>300 1ヵ月以上もお前のレスにレスがつかないのはなぜか分かる? お前みたいなゴミクズは誰も必要としてないからだよ。 一般社会ではあからさまに無視するわけにもいかないから当たり障りのない対応をしてもらってると思うけど、 お前ハッキリ言って迷惑だから。 ゴミクズはネットでもリアルでもできるだけ社会と接点持つな。 Test Summary Report ------------------- t/config-finder.t (Wstat: 512 Tests: 0 Failed: 0) Non-zero exit status: 2 Parse errors: Bad plan. You planned 26 tests but ran 0. Files=86, Tests=923, 636 wallclock secs ( 2.64 usr 1.67 sys + 247.77 cusr 297.98 csys = 550.05 CPU) Result: FAIL Failed 1/86 test programs. 0/923 subtests failed. Makefile:945: recipe for target 'test_classic' failed make: *** [test_classic] Error 255 PETDANCE/ack-2.12.tar.gz /usr/bin/make test -- NOT OK //hint// to see the cpan-testers results for installing this module, try: reports PETDANCE/ack-2.12.tar.gz Running make install make test had returned bad status, won't install without force Failed during this command: PETDANCE/ack-2.12.tar.gz : make_test NO Windous上のcygwinとLinuxでCPANのackをインストールしているところでつまずきました 上のエラーはcygwinの方のエラーです これは、curlを使えば回避できるそうですが http://d.hatena.ne.jp/katz_24/20130210/1366387522 setup.exeを利用したインストールでも何故かインストールができずに手詰まりになりました ack-2.12.tar.gz を回答してみても訳が分かりません ackをインストールする手はありますか? make test had returned bad status, won't install without force まけ出来てるのならいんすこ自体は可能 force installでcygwinの方に入れました 正常に動作します ありがとうございました Linuxの方は、手っ取り早く sudo aptitude install ack-grep しました おかげさまで両方にackが揃いました 感謝します xmlを取得して中身を s|。|。<br>|g; して句読点ごとに改行させたかったのですがどうしても出来ません なにか理由があるのでしょうか 初心者なもんで変な質問をしていたらすいません エスパーじゃないんだから、そんな質問で答えれる訳ないだろ。 せめてサンプルとなる簡単なxmlを出せよ・・・ 申し訳ないです >>306 デコードはしています >>307 申し訳ありません wikipedia.simpleapi.net/api?keyword=Test&output=xml >>308 テストした結果、普通に置き換えできます。 取得方法に問題があるんだろう。 ってか、こんな質問の仕方じゃスレ全部埋まるわ・・・ 問題が起きてるサンプルコード出してみ >>308 ちげーよ utf8のファイルをeucのスクリプトでマッチしようとしたんじゃないの、ってこと >>310 shift-jisのスクリプトでマッチさせようとしました 不味かったでしょうか >>311 なら、どっちかの文字コードにencodeして合わせる > perl -e "print (5+5)/3" 10 なんで? print -e "print((5+5)/3)" >>314 http://perldoc.jp/docs/perl/5.18.1/perlfunc.pod > 括弧を使うときには、単純な、(しかし、ときには驚く結果となる規則が 適用できます: > 関数に見えるならば、それは関数で、優先順位は関係ありません。 (略) > Perl に -w スイッチを付けて実行すれば、こういったものには警告を 出してくれます。 2000年には既にwarnings実装してんのに なんで未だに、-w推薦文章なんか残してんだろーね? -Mwarningsのエイリアスって訳でもねーし。 【誤】print -e "print ((5+5)/3)" 【正】perl -e "(print(5+5)) / 3" ついでに -w と -Mwarnings は別物。-Mwarnings で -w の代わりになるわけではない。 >>318 -w ≠ warningsは常識だろ。 で、「use Unicodeは、use Jcodeの代りじゃない」ってレベルの事を言ってるぞ、おまえさん。 -wが石頭だから、より制御しうるwarningsを実装したんだろが。 5.20のperllexwarnがスッキリしててワラタ。 再帰中に再帰の深さを出したいんだけどlocal使っていい? local $::count = $::count + 1; もっと普通の方法ある? 引数で渡す sub foo { my ($arg, $count) = @_; ...; foo($arg, $count) if $count++ < 10; } ありがとーーー。 複製される変数の数には変わりがないよね、たぶん。 上はグローバル変数と言うのが気に入らなくて、下は引数で扱う値が増えるのが気に入らないが。 read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる