
Perlのeval文で、
$str='hoge';
eval "print+$str";
とすると「hoge」と出力されます。
このとき+はスペースとして扱われているようなのですが、
そのことについてマニュアルなどに記載されていないようです。
eval "print+1+2";
の場合はちゃんと3と表示されるし、
きっとevalのほうで+を適当に解釈してるんだと思いますが、
それであってるんでしょうか。
またこのようなeval中で特殊に評価される文字があるのでしょうか。
できれば関連文献などを教えていただけるとなお嬉しいです。
マニュアルを見落としてる可能性もあるなあ。
そうだったら恥ずかしい。^^;
No.1ベストアンサー
- 回答日時:
別に eval でなくても
print + "abc\n";
で abc が出ますね。あと、
print - "abc\n";
だと、-abc が出ます。
これらから想像すると、数値に単項演算子の + や - をつけたのと
同じような解釈をしているようです。
というわけで、マニュアル perlop の Symbolic Unary Operators
の節を見てみると(日本語のは持ってないので、英語のを簡単に訳
すと)、
「単項の "+" は(文字列に対してさえも)まったく何の効果も持たない」
とあります。
ついでに、
「単項の "-" は、オペランドが数値なら算術の否定。識別子なら、
"-" とその識別子をくっつけた文字列。オペランドの文字列が +
か - で始まっていたら、それを逆にした文字列。」
とあります。つまり、
- "-abc" -> "+abc"
なんですねぇ…。知らなかった… ^^
やっぱり単項+でいいんですね。
とても参考になりました。
Perlって記号がいろいろな使われ方するから、
まだまだ自分の知らない文法が隠されてるんじゃないか思うことが
ときどきあります。
単に読み方を間違えてるだけなんですけどね。たいてい。^^;
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
INDIRECT 横に再度抽出したい
-
Strawberry Perl for Windows ...
-
perlのプログラミング 部分入れ...
-
Perlでファイルの末尾から指定...
-
perl の open について教えてく...
-
Perl言語について。
-
ファイルをディレクトリ分配の...
-
アルファベットに付いて質問し...
-
#!/usr/bin/perlで書きだしたCG...
-
Perlのエラーについてご教授く...
-
perlのflock関数でロックをかけ...
-
AI sisterとは、偽物の人ですか?
-
bashスクリプト
-
ファイルアイコンの左下に緑の□...
-
perlプログラミング 空白行削除
-
perlでリテラル値はメモリにど...
-
perlで2次元配列をサブルーチ...
-
Perlで時間の計算
-
perlについて
-
perlのrequireの動き方について...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
シェルスクリプトで、空白(ス...
-
16進の10進変換について
-
c言語 16進数の2進数への変換
-
I2C接続のLCDディスプレイを使う
-
【至急!!!】python言語で本を見...
-
関数「exists」と「defined」の...
-
パイソンのクラスについて
-
Pythonでコンソールをクリアす...
-
PythonのJanomeを使って品詞の...
-
至急、[python初心者] listを使...
-
Python3 プログラミング初心者...
-
Lispの、evalはどのようにすご...
-
コラボレイトリーとVSコード
-
Pythonでプログラミング プログ...
-
Python3
-
パイソン文法で
-
int(input("○○"))の使い方
-
プログラミングを教えて下さい
-
pythonを使ったプログラミング...
-
Adafruit LIS3DH 3軸加速度セン...
おすすめ情報