アプリ版:「スタンプのみでお礼する」機能のリリースについて

Perlの初心者です。$xxxx という変数の値がどういう訳か、その末尾に半角スペースを含んでしまい、これを捨てる方法が分からなくて困っています。どなたかお教え下さい。

A 回答 (5件)

末尾に半角スペースが1文字という前提です。


chop $xxxx; としてください。
chop は最後の1文字を取り除きます。
    • good
    • 0
この回答へのお礼

tatus99 さま、ありがとうございました。これはPascalでやる delete(string,length(string),1)に相当するものですね。つまり必ず結果として文字列長は1半角分短くなるのですね。

お礼日時:2003/10/19 16:37

# 本来は解決策の前に原因を探るべきなんでしょうね。


# まあ,アドバイスということで。

chomp の使い方は chop と同じです。
chomp $xxxx
で OK。

chop が問答無用で最後の1文字を削除するのに対して,
chomp は最後の1文字が改行の場合だけ削除します。

ファイルや標準入力からデータを読み込んできた場合,
末尾に改行がついている可能性がありますから,
(ついていない可能性もある)
chomp で処理するのが定石です。

# $xxxx の出所がわからないので,思いっきりはずしてるかもしれませんが。
# 覚えておいて損は無いと思います。

参考URL:http://www2u.biglobe.ne.jp/~MAS/perl/ref/chomp.h …
    • good
    • 0

まずは、その最後の空白というのがなんなのか調べましょう。


改行じゃなく空白であるなら、
$xxx = "This is a pen. ";
$xxx =~ s/\s$//;

こういう方法もあります。
    • good
    • 0

No1です。


>これはPascalでやる delete(string,length(string),1)に相当するものですね。
pascalについては、解りませんのでyesとは、断言出来ませんが、たぶん、その認識でよいと思います。
>つまり必ず結果として文字列長は1半角分短くなるのですね。
その通りです。
    • good
    • 0

問答無用に切り捨てるなら,


chop
ですね。

ところで,その半角スペースって実は改行コードだったりしません?
HTML 中の改行コードは半角スペースと同じ扱いですから。

改行コードでしたら,
chomp
で削除できます。

参考URL:http://www5a.biglobe.ne.jp/~n_rieko/perl/right.htm
    • good
    • 0
この回答へのお礼

yoppii様 ありがとうございました。改行コードなのかどうかも分かりません。問題は解決しておりません。参考URLでchomp用例を見たんですが、ふふ、なんだか[ ]というのでやたらに囲ってある書き方が目立ち、初心者にはおっかない説明。この語末Space削除問題も解決が単純ではないですね。Perlはむずかしい。。。もう少し考えてみます。

お礼日時:2003/10/19 16:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!