• 締切済み

プログラムの読み方について

例えば以下の様なブログラムがあるとしますが、 いちいち シャープ びっくりマーク スラ ユーエスアール スラ 等心の声でよんでいるのでしょうか。 又、記号も色々とでてきますが 中括弧 大括弧 等 心の声を出して読んでいるのでしょうか。教えて下さい。 #!/usr/bin/perl # 「$linkfile」にデータファイルのURLを代入 $linkfile = "url.dat"; # 乱数の初期化 srand( time ); # 「$linkfile」を開いて,データ(URL)を「@url」に代入 open ( URL, "$linkfile" ) or die &error( "$linkfileが開けませんでした." ); @url = <URL>; close URL; # 「@url」の要素数を「$count」に代入 $count = @url; # 0から「$count」までの乱数を作り「$number」に代入 $number = rand; $number *= $count; # 「$number」の小数点以下を切り捨て $number = int( $number ); # Webブラウザの「Location:」(場所,アドレス)に # ランダムに抽出したURLを出力 print "Location: $url[ $number ]\n\n"; # エラー処理 sub error{ print "Content-type: text/html\n\n"; print "<HTML><HEAD><TITLE>ERROR</TITLE></HEAD><BODY>\n"; print "<H1>ERROR</H1>\n"; print "<P>$_[0]</P>"; print "</BODY></HTML>\n"; exit; }

  • Perl
  • 回答数2
  • ありがとう数2

みんなの回答

  • Oyaji75
  • ベストアンサー率12% (4/33)
回答No.2

Perlですね。 私は読んでいません。 全部書くのはむりですが、和訳して特定のカテゴリーで読んでいます。 open ( URL, "$linkfile" )~close は、ファイル。 srand( time ); は、乱数。 他にもforループや、ケース等。 サブルーチンはまとめて、処理名で呼んでいます。 エラー。ヘッダー、フッター、ファイルオープン、書き込み、表示、カウント,入力チェック、等。 心の中では、サブルーチンには”○○処理”とつけています。 あとは、アレ、コレで漠然と読んでいます。 #!usr/bin/perl #!/usr/local/bin/perl 上がダメなサーバの場合、下に変更する際は、コレがダメだとアレか、と。 どちらがアレで、こちらがコレと言う訳ではありません。 私の場合は、日曜プログラマーなので、誰かと意思疎通を図る事がないので、それで通じます。 今回の様なスクリプトを考える時は、 コレ(#!/usr/bin/perl)して、ファイル名はアレで、アドレスを入れる。 ファイルを開いて、配列代入。ランダム。 ロケ(ロケーション)で移動で、ダメならエラー処理、っと。 あとは、いつも使い回しているエラー処理は他のスクリプトから丸コピー、簡単な物はそらで打てますし、atokもその助けとなります。 逆に意識して呼んでいる単語の方が少ないです。

gentle2
質問者

お礼

実に参考になりました。有難うございます。

  • PrintScree
  • ベストアンサー率25% (538/2091)
回答No.1

Perlは良く使用します。 私の場合一文字一文字イチイチ頭の中で読んでいません。 最初の一行目は、決まり事なので自然と手が動きます。 printやexit等のステートメントはそのまま英単語として読みます。 変数名も目的が判るように英単語を使用しています。 ですので、質問者様が例に挙げている一行目は… 「ユーザー ビン パール」 と、「#!/」は省略して読みます。 カッコは([{全てカッコと考えてはいませんが、頭の中にイメージとして思い描きます。 単語などを心の中で読んでいると、せっかく思い浮かんだロジックを忘れてしまうので、頭の中で一文字ずつ読んではいません。

gentle2
質問者

お礼

実に参考になりました。有難うございます。

関連するQ&A

  • Perl CGI -入力フォーム-

    Perlを始めたばかりの初心者です。 Perlの中にフォームを入れたいのですが、エラーが出てしまいます。 現在は、ローカルで作動させています。 #! c:/perl/bin/perl print "Content-type: text/html\n\n"; print "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\">\n"; print "<head><title>TEST</title></head>\n"; print "<body>\n"; print "<p><input type="text" name="name"></p>\n"; print "</body>\n"; print "</html>"; 【print "<p><input type="text" name="name"></p>\n";】この記述がエラーの対象行となっています。 inputを使用する場合は他にも記述が必要なのでしょうか? 宜しくお願いします。

  • CGIで~秒後にジャンプします。を入れたいのですが・・・・

    CGIで~秒後にジャンプします。を入れたいのですが・・・・ print部分が↓の部分に~秒後に指定のURLにジャンプする部分を入れたいのですが print "Content-type: text/html\n\n"; print "<HTML><HEAD><TITLE>Thank you!</TITLE></HEAD>\n"; print "<BODY bgcolor=\"#9dffff\">\n"; print "<H2 align=\"center\">アンケートにご協力誠にありがとうございました!</H2>\n"; print "<HR>\n"; print "<P>\n"; print " あなたの貴重な意見を今後のお店作りに役立てたいと考えています。\n"; print "</BODY></HTML>\n"; わかる方いましたらお願いします。

    • ベストアンサー
    • CGI
  • メールフォーム

    print "Content-type: text/html\n\n"; print "<HTML><HEAD><TITLE>Thank you!</TITLE></HEAD>\n"; print "<BODY bgcolor=\"#DEB887\">\n"; print "<H2 align=\"center\">メール送信完了!</H2>\n"; print "<HR>\n"; print "<P>\n"; print " しばらくお待ちください。\n"; print "</BODY></HTML>\n"; CGIでメールフォームを作成してて、送信後の画面はこんな感じにしてるのですが、 meta http-equiv="refresh" content="5;url=sample.html 5秒後に自動でTOPページへ持っていくようにしたいのですが、これはどこに入れたらいいんでしょうか?

    • ベストアンサー
    • CGI
  • Apacheでcgiができないんです。

    以下のホームページと同じように、設定したのですが。。。 http://www.futomi.com/lecture/apache/config.html 下のcgiは実行できます。 #!/usr/local/bin/perl print "Content-type: text/html\n\n"; print "<HTML>\n"; print "<HEAD>\n"; print "<TITLE>Apache</TITLE>\n"; print "</HEAD>\n"; print "<BODY>\n"; print "<H2>Welcome to my computer, Apache Server!</H2>\n"; print "</BODY>\n"; print "</HTML>\n"; しかし、下のcgiは実行できません。htmlファイル、cgiファイル共に、あるホームページからコピペしたので、間違いないと思います。ここではhtmlファイルは書きませんが、以下のURLです。 http://www2j.biglobe.ne.jp/~apollo/server/apacuse.html #!/usr/local/bin/perl $countfile= "count.dat"; open(IN, "< $countfile"); $count = <IN>; close(IN); $count++; open(OUT,"> $countfile"); print OUT $count; close(OUT); print "Content-type: text/plain\n\n"; print $count;

    • ベストアンサー
    • CGI
  • テキストエリアのインプットをPerlプログラムへ

    基本事項だと思うのですが質問させてください。 まず、HTMLファイル上に <form method= "post" action ="http://localhost/test.cgi> <textarea name ="story" cols="60" rows="10"> This is a test. </textarea> ... <input type="submit" name="submit_story" value="submit"> とプログラムを組みます。 その後、perlプログラムにテキストエリアの内容を送りユーザがsubmitボタンを押したときに HTMLファイルとして出力します。 そのPerlは以下のように組みました。 print "Content-type: text/html\n"; print "\n"; print "<html>\n"; print "<head>\n"; print "<title>The test of CGI</title>\n"; print "</head>\n"; print "<body>\n"; $story = $_POST["story"]; print "<p><h3>Textarea says $story </h3></p>\n"; print "</body>\n"; print "</html>\n";  しかし、$storyは表示されませんでした。 どこがおかしいのでしょうか? もしよければアドバイスをお願いします。

    • ベストアンサー
    • CGI
  • エラー表示の意味を解説してください

    CGI初心者です。自分の端末でサーバ設定し、テスト中の段階です。htmlファイルはブラウザからきちんと表示されました。が、CGIファイルを表示させようとすると、 CGI エラー - Content-Type ヘッダが正しくありません。 CGI 出力メッセージ: Can't open perl script "C:\www\hiro\ISO": No such file or directory とエラーがでます。ちなみに、スクリプトには #!/usr/bin/perl print"Content-type: text/html\n\n"; print"<HTML>\n"; print"<HEAD>\n"; print"<TITLE>CGI No1</TITLE>\n"; print"</HEAD>"; print"<BODY>\n"; print"CGIプログラム No.1,テスト成功!\n"; print"</BODY>\n"; print"</HEAD>\n"; と記述しました。なにがいけないのか教えてください。

    • ベストアンサー
    • CGI
  • print HTML~をヒアドキュメントで

    CGIを改造して利用したいと思っています。 データの結果をhtmlファイルに出力するようにしたいと考えています。 sub html_reg{ open(HTML,"+>>../$no.html"); print HTML "<html>\n<head>\n"; ~~ print HTML "</body></html>\n"; close(HTML); } と言う風になっています。 しかし、通常のhtml文なので、「print HTML "~\n";」をつけるのと「""」があったときに「\"\"」にするのがとても面倒です。 と言うことで、ヒアドキュメントで記載できないかと考えたのですが、print HTML の「HTML」の部分をどのようにしたらよいかがよくわかりません。 どのように記載すればよいでしょうか?お願いします。

    • ベストアンサー
    • Perl
  • 入力フォームを変数に格納

    Perlを始めたばかりの初心者です。 inputで入力した情報を変数として取得する方法は可能でしょうか? #! c:/perl/bin/perl print "Content-type: text/html\n\n"; print "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\">\n"; print "<head><title>TEST</title></head>\n"; print "<body>\n"; print "<p><input type=\"text\" name=\"name\"></p>\n"; print "</body>\n"; print "</html>"; 上記の入力フォームで、777と入力した場合、サーバーを経由しないで、777を変数に格納したいのですが、可能でしょうか? 宜しくお願いします。

    • ベストアンサー
    • Perl
  • ルビープログラムのフォーム入力について

    Rubyプログラムを勉強中です。 簡単な掲示板から始めているのですが、実行させるとうまく動きません。 なにかヒントになるものがあれば教えて下さい。 参考サイト http://jp.rubyist.net/magazine/?0012-CGIProgrammingForRubyBeginners-3 エラーの症状 上記サイトの「CGI クラスを使ってフォームデータを取得する」項目で実際にhtmlフォームへ半角英数で入力すると値を返してくれます。 下記は値を返した時のページのソース <html><head></head><body>1<br></body></html> しかし全角入力でフォームへ入力するとするとHTML値を返してくれません。 下記は値を返した時のページのソース <html><head></head><body> 参考サイトのデータをそのまま実行させているのですが、何か原因はわかりますでしょうか? Rubyプログラムの中身は下記のとおりです。 #!/usr/local/bin/rubyrequire "cgi"print "Content-Type: text/html\n\n" print "<html><head></head><body>" c = CGI.newtext = c["t"] print textprint "<br>" print "</body></html>" もしわかれば教えて下さい。よろしくお願いします。

    • ベストアンサー
    • Ruby
  • アクセスカウンタについて

    #!/usr/local/bin/perl # カウントファイルの読み込み open(IN, "<./count.dat"); $count = <IN>; close(IN); ++$count; # カウントファイルへの書き込み open(OUT, ">./count.dat"); print OUT $count; close(OUT); # サーバ出力 print <<END; Content-type: text/html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html> <head><title>Perlあくせすかうんたー</title></head> <body> <p>あなたは……$count番目の訪問者です。</p> </body> </html> END 以上のように書きcount.datを作成して同じディレクトリ内においたのですが、カウントが1から増えません。サーバがいけないのか、スプリクトがわるいのかよくわかりません;; ちなみにサーバはlinuxで構築しています。

    • ベストアンサー
    • Perl

専門家に質問してみよう