運営している俳句サイトで自動句会システムを作動させている。

ユーザーが自分が詠んだ俳句をテキストフォームを使って投稿するという仕組みですが、パソコンに不慣れな方も多く、意図しないスペースが入ったまま投稿されるとシステムが正常に処理できないことがあるので、投稿受付時に以下の対策を施すことにした。

文字列末尾の半角スペース&タブを削除

$val =~ s/\s*(.*?)\s*$/$1/;

以下のテストスクリプトで確認できる。

## 文字列末尾のスペース&タブ削除
$val = "This is a pen.     ";
$val =~ s/\s*(.*?)\s*$/$1/;
print $val;

文字列末尾の全角スペースを削除

全角スペースの削除は、使用する文字コードによって異なる。

$val =~ s/\x81\x40//g; …SJIS
$val =~ s/\xa1\xa1//g; …EUC