質問編集履歴

1 ハイライト修正しました

siusus

siusus score 11

2017/02/20 19:26  投稿

テキストファイルから文字列を読み込むと行頭に記号がつけられてしまう
LWPやMechanizeの使い方を勉強中です。
WindowsでStrawberry_perl 5.24を使用しています。
辞書サイトで英単語を調べるスクリプトを書いているのですが、テキストファイルから英単語を一行ずつ読み込むと"?"や">>?"などの記号がついた状態になってしまいます。どうやら一行目の単語にだけ記号が付け加えられるようです。エンコードの関係なのかファイル形式のせいなのかそれとも改行コード??のせいなのか皆目見当がつかず困っています。
この記号がつかないようにするにはどうしたらよいのでしょうか?
よろしくお願い致します。
###発生している問題・エラーメッセージ
```
$VAR1 = "http://dictionary.cambridge.org/dictionary/english/\x{feff}catch";
$VAR1 = "\x{feff}catch"; #\x{feff}はutf8で þÿ という記号らしいです
http://dictionary.cambridge.org/dictionary/english/?catch #この部分です。
$VAR1 = 'http://dictionary.cambridge.org/dictionary/english/release';
$VAR1 = 'release';
http://dictionary.cambridge.org/dictionary/english/release
```
###該当のソースコード
```ここに言語を入力  
use strict;
use warnings;
use Data::Dumper;
use utf8;
use Encode;
binmode STDOUT, ':utf8';
binmode STDERR, ':utf8';
open(IN, '<:encoding(utf8)', 'word_list.txt');
while(<IN>){
   chomp;
   my ($word) = split(/,/, $_);
my $url = 'http://dictionary.cambridge.org/dictionary/english/';
 
  $url = $url.$word;
 
  print Dumper($url)."\n";
  print Dumper($word)."\n";
  print $url."\n";
}
close(IN);
```  
 
 
###補足情報(言語/FW/ツール等のバージョンなど)
word_list.txt(utf8で保存)の内容
catch
release
  • Perl

    585 questions

    Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る