• 締切済み

Perl my 改行について

#Practice Coad in Perl(注意:プログラムは上から実行される) use strict; use warnings; # スカラー変数 my $a = '1'; #これは「1」という数字の入っている箱 my $b = '2'; #これは「2」という数字の入っている箱 my $str = "ABCD_TEXT"; #文字列 print "$a" - "$b" ; print "$str"; 以下のコードで、my$str ="ABCD_TEXT"; #文字列 表示を 3 ABCD_TEXT としたい。 どうすればいいか?

noname#235477
noname#235477
  • Perl
  • 回答数1
  • ありがとう数0

みんなの回答

  • notnot
  • ベストアンサー率47% (4848/10261)
回答No.1

1 - 2 は、3じゃなくて-1ですけど。 それはさておき、改行したいと言うことなら、print "\n"; です。

関連するQ&A

  • perl ハッシュ エラー

    現在perlの勉強中で、ハッシュの項目まできました。しかし、use strictにするとこのコードがエラーになります。 #!/usr/bin/perl use strict; use warnings; print "Content-type:text/html\n\n"; $hoge{"key1"} = "value1"; print $hoge{"key1"}; exit; ヴァージョンは5.8.9です。use strictをコメントアウトすればエラーはでません。どうしてエラーになってしまうのでしょうか?どうすればエラーを出さずに表示することができるのでしょうか?どうかご教授ください。よろしくお願いします。

    • ベストアンサー
    • Perl
  • Perlを始めたんですが

    プログラミングを始めようと思ってPerlをしているのですが プログラムを書いて開くとすぐに画面が消えてしまいます ActivePerlというのはいれてあります 書いたプログラムはこんなものです use strict; use warnings; print "Hello world";

    • ベストアンサー
    • Perl
  • WindowsでUTF-8のPerlスクリプトを実行する場合。。。

    お世話になります。 2006年に発行された「まるごとPerl」というムックの「まるごとEncode」という記事を見て Perl の日本語処理の勉強をしています。 本記事は Perl5.8 対象と思われますが私は Strawberry Perl 5.10.0 を Windows XP SP3 で使っています。 #! perl # list1 -- 日本語の文字を1文字として解釈(UTF-8で保存) use strict; use warnings; use utf8; my $text = '漢字、カタカナ、ひらがなの混じったtext'; print substr($text, 3, 4); というサンプルコードがあって、実行結果は「カタカナ」になると書いてあります。 要するに substr 関数が use utf8; によってバイト単位ではなくて文字単位で効くようになるので、4文字目から4文字が正しく取ってこられるという実験ですが、Windows の DOS 窓で実験すると、当然端末コードは Shift_JIS というか CP932 ですので、 Wide character in print at C:\Marugoto\list1.pl line 8. 繧ォ繧ソ繧ォ繝 となります。 そこで、上のコードに binmode 関数を足して、 #! perl # list1 -- 日本語の文字を1文字として解釈(UTF-8で保存) use strict; use warnings; use utf8; binmode STDOUT, ':encoding(cp932)'; # 追加 my $text = '漢字、カタカナ、ひらがなの混じったtext'; print substr($text, 3, 4); とすると正しく動作しました。 次に、 #! perl # list2 -- 1オクテットを1文字として解釈(UTF-8で保存) use strict; use warnings; my $text = '漢字、カタカナ、ひらがなの混じったtext'; print substr($text, 9, 12); というリストがあって、今度は use utf8; がないのでバイトモードで使う(substr 関数は 9 バイト目から 12 バイトを取ってくる。UTF-8 は全角日本語文字が1文字3バイトなので)という実験ですが、これもそのまま DOS 窓で実行すると 繧ォ繧ソ繧ォ繝 となるので、さっきと同じように binmode 関数を使って、 #! perl # list2 -- 1オクテットを1文字として解釈(UTF-8で保存) use strict; use warnings; binmode STDOUT, ':encoding(cp932)'; # 追加 my $text = '漢字、カタカナ、ひらがなの混じったtext'; print substr($text, 9, 12); と書いたのですが、 ・\x{0082}" does not map to cp932. "\x{0082}" does not map to cp932. "\x{00bf}" does not map to cp932. "\x{0082}" does not map to cp932. "\x{0083}" does not map to cp932. "\x{008a}" does not map to cp932. a\x{0082}≪a\x{0082}\x{00bf}a\x{0082}≪a\x{0083}\x{008a} のようになりました。 もちろん、プログラムを Shift_JIS で保存して substr($text, 6, 8) とすれば正しく実行できますが、プログラムを UTF-8 で保存しつつ、Windows で正しく表示する方法はあるでしょうか。 よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • use strictが効かない (PERL)

    たびたびお世話になっております。 PERL version 5.14.2 をWindows 7 のコマンドプロンプトから起動して使っています。 use strict; と一行目に書くと 宣言されていない変数があれば拒絶されるとのことで #!/usr/bin/perl use strict; use warnings; $a = 10; print "$a\n"; というスクリプトを書きました。が、すんなり動いてしまいます。 use strict; は どうすればうまく効くのでしょうか。 ご指導お願いします。

    • ベストアンサー
    • Perl
  • perlのリファレンス?はPHPではどうするのでしょうか?

    以下、Perlのソースですが、これをPHPに直すとどうなるのでしょうか? use strict; use warnings; use Data::Dumper; my $Name = "テスト"; my $Width = "100"; my $Height = "200"; my $dat = [ $Name, { Width=>$Width, Height=>$Height, } ]; print Dumper($dat); sub test{ my ($aryref) = @_; $$aryref[0]{$Name}{"Width"} = $Width; $$aryref[0]{$Name}{"Height"} = $Height; } my @OBJ = (); test(\@OBJ); print Dumper(@OBJ);

    • 締切済み
    • PHP
  • perlで配列名を動的に作り出したい

    試しに次のようにしてみましたがエラーになりました。 #!/usr/local/bin/perl use strict; use warnings; my $mystr = "abcde"; my @{$mystr} = (1,2,3); $mystrの内容はいろい変わっていきます。 ご存知の方いらっしゃいましたらすみませんが教えてください。 よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • perl 初心者です。 わかりやすくお願いします。

    Perlを始めたのですが、本や色いろんなサイトを見てもよく分かりません。 Aと言うデータを読み込んで最大最小・平均・標準偏差を求めたいです。 (1)どこが間違っているのか1部づつでもいいので詳しく教えてください。 (2)一つ一つの意味がちゃんとはつかめていないと感じるので流れを教えてください。 #!/usr/bin/perl # 12345 STDIN use strict; use warnings; open ( FILEHANDLE , " < A " ) ; my @Str=<STDIN>; foreach my $Row (@Str ){ print $Row; } my $Minimum=$ARGV[0]; my $Maximum=$Minimum; my $Sum=$Minimum; my $temp=0; my $i=1; while ( $i < $Num_arg){ $temp=$ARGV[$i]; if ( $Minimum > $temp ) { $Minimum = $temp; }elsif ( $Maximum < $temp ){ $Maximum = $temp; } $Sum = $Sum + $temp; $i++; } my $Average = $Sum / $Num_arg; my $w = foreach my $w(0..$#Numbers){ ($Num_arg - $Average) ** / Num_arg; } my $Standarddivitation = sqrt ($w); print "Average value = $Average \n"; print "Maximum Value = $Maximum \n"; print "Minimum Value = $Minimum \n"; print "Standard devitation = $Standarddevitation;

  • Perl:Unicodeプロパティ作れない

    お世話になります。 Unicodeの文字プロパティの使い方を学ぶために、以下のようなスクリプトをUTF-8で保存しました。 ============ #! /bin/perl # # utf8_unireg.pl use 5.010; use strict; use warnings; use utf8; binmode STDOUT, ":encoding(shift_jis)"; my $str = "a:b:c:"; say join "|", ($str =~ /\p{ASCII}/g); say join "|", ($str =~ /\p{AsciiAlpha}/g); sub AsciiAlpha { return <<END; 0041 005A # A-Z 0061 007A # a-z END } ============ 実行するとこうなります。 ============ C:\Perl\perl>utf8_unireg2.pl a|:|b|:|c|: Can't find Unicode property definition "AsciiAlpha" at C:\Perl\perl\utf8_unireg2.pl line 14. ============ \p{AsciiAlpha}というプロパティの作成に失敗しているようです。。 なぜか分かりますでしょうか? よろしくお願いします。

    • ベストアンサー
    • Perl
  • Perl:ドイツ語のウムラウト文字の置換ができなくて困っています

    Perl初心者です。ドイツ語のウムラウト文字の置換ができなくて困っています。 環境はWindowsXP + ActivePerl v.5.8.7 です。 以下のスクリプトを実行しています。 === use strict; use warnings; use encoding 'utf8'; my $txt = "*"; print "Pre: $txt\n"; $txt =~ s/*/a/; #置換 print "After: $txt\n"; === *にアルファベットや日本語を入れたときは、"a"に置換されるのですが、 ドイツ語の"アーウムラウト"を入れると置換されません。 文字コードを調べたりしたのですが、解決策が見つからずにこまっています。 きっと、基本的なことがわかっていないのだと思います。 お助けください。

    • ベストアンサー
    • Perl
  • perl use strict; と ファイルハンドルについて

    perl use strict; を使うと、単純なエラーが防げると認識していますが、下記スクリプトでは役に立たなかったようで、このエラーを探すのに苦労しました。 他にも、どこかのサブルーチンでsortを使ったスクリプト中で、$aを使った時もおかしな挙動をしたことがあります。 use strict;の使い方は正しいと思うのですが、エラーを出してはくれないものでしょうか? また、このようなエラーをしないために安全なプログラムの書き方はありますか? use strict; open(F,"<file.txt"); while(<F>){ &abc($_); } close(F); sub abc(){ my $str = shift @_; open(F,">>file2.txt"); print F $str; close(F); }

    • ベストアンサー
    • Perl

専門家に質問してみよう