- ベストアンサー
文字列が6文字の半角スペースかどうかを判断する方法
$mno = substr($buf,0,6); if ($mno eq ' '){ &error(4); } else { ・・・・・・・・ ・・・・・・・・ } と、上記のような感じでロジックをくんでいるですが、 $mno が6文字分の半角スペースの時はエラーサブにとびたいのですが、うまく飛びません。 上記のようなロジックであっているのでしょうか? それとも、「eq」や「ne」では比較できないのでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
このページで半角スペースを表すのは難しいので、ここではあえて半角スペースを 「.」 で表させて頂きます。 質問者さんのソースの通り、 $buf = '......abcdefg'; #最初の6文字が半角スペースの適当な文字列 $mno = substr($buf,0,6); if ($mno eq '......'){ &error(4); } else { #ほにゃらら } で一応動きましたよ~(Active Perl)。全角スペースだったっとかいうオチは無いですよね。念のため$bufの中身のご確認を・・・。
お礼
結果的にロジック的には問題ありませんでした・・・・(^^; ただし、$mno = substr($buf,0,6); の行頭に、カラム下げのため半角6文字分のスペースがあり、その行に全角スペースが混ざっており結果的に上記の substrの行そのものがスキップされた形で処理がされていたようです。 そのため比較ができていませんでした。 お騒がせしてすいませんでした(^^;;;;