• ベストアンサー

Perlの改行で、

Perlの改行で、 print <<HTML; この場合は、ここを自由に改行出来ると思いますが、 HTML print "Content-type: text/html\n\n"; &aaa ("<p style='color:#eee'>色</p>~~~~~~~~"); &aaa ("~~~"); を使う場合、~~~の部分がとても長くなるときに、 テキスト内で改行する場合、自由に改行を入れても良いでしょうか? どうやれば良いのでしょうか?

  • Perl
  • 回答数3
  • ありがとう数15

質問者が選んだベストアンサー

  • ベストアンサー
noname#112057
noname#112057
回答No.1

この場合、改行はエラーになると思われます。 ある程度で区切り、『.』でつなげた場合は、『.』の前後で改行が可能と思われます。 &aaa ("<p style='color:#eee'>色</p>" . "~~~~~~~~" . "~~~~~~~~" . "~~~~~~~~" . "~~~~~~~~" . "~~~~~~~~"); こんな感じ。

takumana20
質問者

お礼

ありがとうございます。勉強になりました。

その他の回答 (2)

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.3

引用符が閉じられるまでが文字列になるので、改行を入れることは可能です。 ただし、その際は、改行文字まで含めた文字列になります。 "<p style='color:#eee'>色</p> ~~~~~~~~" は "<p style='color:#eee'>色</p>?n~~~~~~~~" と同じです。 改行文字を含めずに、見掛けだけ改行したい場合は#1さんのように、一旦引用符を閉じて.で連結します。

takumana20
質問者

お礼

はい。外見上なら &aaa ("<p style='color:#eee'>色</p><br> ← ← でも良いですよね・・・ 覚える事が多くて難しいですね。ありがとうございました。

  • ryu_chan
  • ベストアンサー率37% (69/186)
回答No.2

自分の環境(Active Perl 5.8.9)では改行を入れても特に問題なく動作してますよ。 ただ、ヒアドキュメントを使うほうが見やすいかもしれません。 aaa(<<HTML); <p style='color:#eee'>色</p>~~~~~~~~ HTML

takumana20
質問者

お礼

ヒアドキュメントって言うんですね。 他のヒアドキュメントもいくつかあって、 同じ.cgiの別の場所に &aaa があったので、 テキスト内のみをどうやって改行するのか不思議でした・・・ ありがとうございました。

関連するQ&A

  • Perl CGIの中で # を使ってコメントアウト出来ると思いますが、

    Perl CGIの中で # を使ってコメントアウト出来ると思いますが、 print "Content-type: text/html\n\n"; &aaa ("<p style='color:#eee'>色</p>"); とかで、'color:#eee' の色指定で # の部分が 誤認識される環境は無いでしょうか?

    • ベストアンサー
    • CGI
  • PerlでHTTPヘッダの\nを外すとエラー

    【PerlでHTTPヘッダの最後の\nを1つでも外すとエラーになります】 初歩的なことですみません。 HTTPヘッダーの最後の\n\nなんですが、ヘッダーの文字列の後に改行が2つ?? と思って この\nを外して、 print "content-type:text/html;charset=utf-8"; とすると、「500 Internal Server Error」 print "content-type:text/html;charset=utf-8\n"; と\nが1つでも 「500 Internal Server Error」 となります。 「\n\n」と2つあればエラーにはならないんですが、なぜ必ず2つ必要なのでしょうか?これは改行が2つって意味ですかね? print "<html>\n"などの\nはソース上やコンソール出力結果上での改行なのはわかります。 この\nは改行したくなければ書かなくてもエラーになりませんよね。(当たり前ですが・・ #!/usr/bin/perl print "content-type:text/html;charset=utf-8\n\n"; ←HTTPヘッダーの\n\n print "<html>\n"; print "<body>\n"; print "<p>テキスト</p>\n"; print "</body>\n"; print "</html>\n";

    • ベストアンサー
    • Perl
  • 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を使用する場合は他にも記述が必要なのでしょうか? 宜しくお願いします。

  • perl の grepで 全角カタカナで検索できません

    perl の以下のソースで、実行エラーになってしまいます。 grep で全角カタカナで検索できないのです。半角カタカナでは、うまく動きました。 全角文字(たとえば’中華’)でも正しく「中華料理」と出力されます。 ’ラーメン’で検索したら、’ラーメン店’と出力されるのが正しいと思うのですが、 なぜ動かないんでしょ? ↓ソース #!/usr/bin/perl @aaa = ("ラーメン店","カレーハウス","中華料理"); @aaa = grep /ラーメン/ , @aaa; print "Content-type: text/html\n\n"; print "<META http-equiv=\"Content-Type\" content=\"text/html; charset=Shift_JIS\">\n"; print <<"HTML"; @aaa HTML exit;

  • テキストファイルの改行の変換

    テキストファイルの改行の変換で困っています。 下記がNotepadで開いたテキストファイルの中身の一部なのですが・・・・ -------------------------------- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">↑<html lang="ja">↑<head>↑<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=Shift_JIS">↑<META HTTP-EQUIV="Content-Style-Type" content="text/css">↑<STYLE TYPE="text/css">↑<!--↑body,tr,td,th { font-size:10pt }↑a:hover { color:#DD0000 }↑small { font-size:9pt }↑-->↑</STYLE>↑・・・・<更に大量のデータが続く> -------------------------------- "↑"が改行を表しているようなのですが、このままだとEXCELに取り込む際に全体を一行として取り込んでしまうため、不具合が生じてしまいます。

  • Perl からbashを呼び出したい

    Perlからbashのファイルを呼び出そうとしています。 sendmail2.cgiは、呼び出せていまが、 sendmail3.cgiは、呼び出せません。 bashのファイル自体は、./(bashファイル)とやると実行できます。 パーミッションは、 sendmail3.cgi 655 mail_plain.sh 755 sendmail2.cgi 705 mailsend.sh 705 です。 パスの設定の問題かとも思ったのですが、よくわかりません。 宜しくお願いします。 ===sendmail2.cgi============= #!/usr/bin/perl print "Content-type: text/html\n\n"; print "<HTML>\n"; print "<P>sendmail test</P>\n"; print "mailtest\n"; print "</HTML>\n"; exec('/home/httpd/wwwroot/yoshida/mailsend.sh'); exit(0); ============================== ===sendmail3.cgi============= #!/usr/bin/perl exec("/home/httpd/wwwroot/bbstest/mail_plain.bash"); exit(0); ==============================

    • ベストアンサー
    • Perl
  • html →perlへフォームを渡そうとしてますが

    独学でmacでパールを勉強しています。 始めてからまだ1週間すこしくらい。 教科書読みながら、 CGIへフォームを渡す所の段階まで進んできました。 現段階で、htmlからperlへフォームを渡そうとしているのですが、 上手く行きません。 状況としては、htmlのフォームを入力して、登録を押す。 成功であれば→実行結果が表示されるはずなのですが、 現段階ではFinderがその実行htmlの場所を開くだけという形になっています。 下記は実験用に使っているソースです。 ーーーーーーーーーーー htmlは <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <title>test</title> <style type="text/css"> </style> </head> <body> <h1>メンバーズリスト</h1> <form method="post" action="form.cgi"> <p> 名前:<br/> <input type="text" name="name"/> </p> <p> 性別: <input type="radio" name="sex" value="male" checked>男 <input type="radio" name="sex" value="female">女 </p> <input type="checkbox" name="megane">メガネを付けてる </p> <p> <select name="kankei"> <option value="yuujin">友人 <option value="kaisya">会社関係 <option value="sonota">その他 </select> </p> <p> 住所: <textarea name="jyusyo" rows="5" cols="40" ></textarea> </p> <p> <input type="submit" value="登録"/><input type="reset" value="クリア"/> </p> </form> </body> </html> ーーーーーーーーーーーーーーーーー perlは #!/usr/bin/perl require 'cgi-lib.pl'; &ReadParse(*form); $name = $form{'name'}; $sex = $form{'sex'}; $megane = $form{'megane'}; $kankei= $form{'kankei'}; $jyusyo = $form{'jyusyo'}; print "Content-type: text/html\n\n"; print "<HTML>\n"; print "<HEAD><TITLE>情報受け取り</TITLE></HEAD>\n"; print " <BODY>\n"; print "<H1>情報受け取り</H1><HR>\n"; print "名前:${name}<BR>\n"; print "性別:${sex}<BR>\n"; print "めがね:${megane}<BR>\n"; print "関係:${kankei}<BR>\n"; print "住所${jyusyo}<BR>\n"; print "</BODY>\n"; print "</HTML>\n"; __END__ です。 ちなみに localhost上で同一ファイルに入れて、 動かしてます。 ご確認の上、ご助言ください、 perlの教科書に書いてあった構文は、 htmlの学習をするために使ってきたものと全く違ったため、 要点だけ残す形で、再度書いたものです。 htmlの文章がおかしいのか、perlがおかしいのか、 頭が変になりそうです。お助けください。

    • ベストアンサー
    • Perl
  • テキストエリアの改行を取得したい

    最近CGIを独学ではじめたのですが、複数行のテキストエリアからの文字列の取得をした場合、改行が反映されずに表示されます。 改行コードのようなものは取得されている、とちらりとどこかで見たことがあるのですが、どのように取得して改行させるかが分かりません。 すみませんが、ご存知の方がいらっしゃいましたら教えていただけないでしょうか。 このような感じで書きました。 my $cgi = CGI::new(); my $area = $cgi->param('text'); print "Content-type: text/html\n\n"; print $area;

    • ベストアンサー
    • CGI
  • perlでHTML出力時の文字コード

    Perlスクリプト中でHTML出力しているのですが、print "Content-type: text/html\n\n";と記述するとEUCで正常に表示され、print "Content-type: text/html; charset=Shift_JIS\n\n";と明示的にSJISを指定すると空白ページが表示されてしまいます。このスクリプトの他の場所ではprint "Content-type: text/html; charset=Shift_JIS\n\n";で正常にSJISで表示されます。どうしてだかわかりません。どなたかご教授お願いします。

  • 入力フォームを変数に格納

    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

専門家に質問してみよう