人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

perlで以下の文を実行すると'がみつかりませんと
表示されてしまいます。¥を指定するには、
何か特別な方法があるのでしょうか?
$dpass='c:\data\';


●質問者: youkan_ni_ocha
●カテゴリ:コンピュータ 学習・教育
✍キーワード:Perl
○ 状態 :終了
└ 回答数 : 5/5件

▽最新の回答へ

1 ● おばけ
●20ポイント

http://www.rfs.jp/sb/perl/02/02.html#5.エスケープシーケンス

'c:\\data\\'とする事で表示できませんか?

◎質問者からの返答

でました。ありがとうございます。 ’ と ”の違いってなんなんでしょうか、


2 ● n_kusano
●20ポイント

$dpass='c:\data\''

では?

http://www.rfs.jp/sb/perl/02/02.html


3 ● おばけ
●20ポイント

http://www.rfs.jp/sb/perl/02/02.html#エスケープシーケンスの使用方法

コメントが付けられないみたいなので これにはポイントなくていいです。

例えば

print "テスト\n";

テスト

↓(改行)

と表示されると思います。

これを

print 'テスト\n';

とすると

テスト\n

こんな風にエスケープシーケンスが解釈されない事になります。


4 ● t_ishida
●20ポイント
でました。ありがとうございます。 ’ と ”の違いってなんなんでしょうか、

に対する返答。

ダブルクォート ["]は\はメタ文字の展開と、変数の展開をするための引用符です。

print "$_\n" for 0..100;

つまり、変数をそのまま指定すれば、ダブルクォート中ではそのまま表現されると言う事ですね。

また、メタ文字は、\ + 文字で構成され、特殊な文字を表現するのに使います。

例えば、以下のようなものが有ります。

\n = 改行、\b = バックスペース、\t = タブ

また、\はもう一つ、エスケープシーケンスと呼ばれる使い方もします。

例えば、上記理由から[\]そのものを表したい時には、"\\"や、

[$]そのものを表したい時には、"\$"のように使用します。

print "\$_\\n" . "\n" for 0..100;


引用符(ダブルクォートや、シングルクォート)中に引用符自身を、

表現する場合には、\'や、\"のようにします。

例えば、

xyzzy"xyzzy = "xyzzy\"xyzzy"(ややこしい場合には'xyzzy"xyzzy'でも可)

xyzzy'xyzzy = 'xyzzy\'xyzzy'(ややこしい場合には"xyzzy'xyzzy"でも可)

のような感じです。



以上、参考になりましたか?

詳しい事を知りたい場合には、以下の書籍をお勧めします。

http://www.amazon.co.jp/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%...


5 ● まきのっぴ
●20ポイント

> ’と ”の違いってなんなんでしょうか

' は変数展開不可なリテラル、" は変数展開可なリテラルです。

http://www.rfs.jp/sb/perl/02/02.html#6%EF%BC%8E%E3%82%AF%E3%82%A...

展開可の構文は、ダラー( $ ) やアットマーク( @ ) で始まる変数、エスケープシーケンスを展開します。バッククォートはダブルクォートの中では展開されません。また、シングルクォートがダブルクォートの中で使われても、変数の展開を妨げることはありません。

つまり、

$a = 'hoge';

print "a=$a\n";

print 'a=$a\n';

とした場合、

a=hoge

a=$a\n

と表示されます。

しかし、' であっても \' は例外的にエスケープシーケンス展開されます。

このため、?\'; では ' という文字そのものを意味してしまい、リテラルが終了したと解釈されないのです。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ