• 締切
  • 暇なときにでも

jcode'convertについて

  • 質問No.3088
  • 閲覧数258
  • ありがとう数5
  • 回答数1

お礼率 29% (20/68)

以下のようなプログラムを書きました。
--------------------------------------------------------------
require 'jcode.pl';
@a=("ら","ー","め","ん");
@b=("半","ら","い","す");
foreach $a(@a){
&jcode'convert(*a, "sjis");
foreach $b(@b){
&jcode'convert(*b, "sjis");
print $a;
print $b;
$aaa = <STDIN>;
}
}
------------------------------------------------------------------
&jcode'convert(*a, "sjis");が無いときは'ら半','らら','らい',,'らす','ー半'…
といくのですが、&jcode'convert(*a, "sjis");をつけると'らす'でプログラムが終わってしまい、'ー半'…以降がプリント出来ません。
どうすればよいのでしょうか。またどうしてこうなるのでしょうか。

回答 (全1件)

  • 回答No.1
シンボルテーブルとかエイリアスとかが私はよくわからんのですが、
問題は *b というところにあります。これが $b ではなく @b のほうの
エイリアス(?)になっているようです。
つまり、$b ではなく、@b をいじってしまうため、
&jcode'convert(*b, "sjis");
の実行後、@b が空になってしまっています。
だから、一回目の「半」「ら」「い」「す」まではとりあえず処理するけど
次にまた @b のループをしようとすると、@bは空になってるために
ループを抜けてしまっているようです。
とりあえず、@b と $b を違う名前に変えれば解決するはずです。
補足コメント
ryogoku

お礼率 29% (20/68)

出来るようになりました!
ありうがとうございました!
投稿日時:0000/00/00 00:00
関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ