kumozのプロフィール
- ベストアンサー数
- 120
- ベストアンサー率
- 64%
- お礼率
- 0%
- 登録日2006/08/18
- Webサイト http://kumo.sakura.ne.jp/
- [Perl]XML::SimpleでSJIS
Windows7、ActivePerl v5.24.1を使っています。 use XML::Simple; use Data::Dumper; my $data = XMLin('test.xml'); print Dumper($data); というコードで、以下のXMLファイルを読み込むと、 <?xml version="1.0" encoding="shift_jis"?> <root> <top id="1234"> <second>値</second> <third> <fourth>1234</fourth> <fifth>myvalue</fifth> </third> </top> </root> Couldn't open encmap shift_jis.enc: No such file or directory at C:/Perl/lib/XML/Parser.pm line 187. XML::Simple called at read_xml_test.pl line 10. というエラーがでます。 ググると、以下のサイトで解決できたという記事がヒットしますが このサイトはもう存在しません。 Perl XMLでencoding=’Shift_JIS’や’euc-jp’を使う http://homepage3.nifty.com/hippo2000/perltips/xml/xmlenc.htm なにかコード間のマップファイルと思われますが、 どなたかお持ちじゃないでしょうか?
- [Perl]XML::SimpleでSJIS
Windows7、ActivePerl v5.24.1を使っています。 use XML::Simple; use Data::Dumper; my $data = XMLin('test.xml'); print Dumper($data); というコードで、以下のXMLファイルを読み込むと、 <?xml version="1.0" encoding="shift_jis"?> <root> <top id="1234"> <second>値</second> <third> <fourth>1234</fourth> <fifth>myvalue</fifth> </third> </top> </root> Couldn't open encmap shift_jis.enc: No such file or directory at C:/Perl/lib/XML/Parser.pm line 187. XML::Simple called at read_xml_test.pl line 10. というエラーがでます。 ググると、以下のサイトで解決できたという記事がヒットしますが このサイトはもう存在しません。 Perl XMLでencoding=’Shift_JIS’や’euc-jp’を使う http://homepage3.nifty.com/hippo2000/perltips/xml/xmlenc.htm なにかコード間のマップファイルと思われますが、 どなたかお持ちじゃないでしょうか?
- Perl 変数 連番 for
いつもお世話になっております。 for文?の使い方を教えてほしいです。 my $test1 = $form->param('test1'); my $test2 = $form->param('test2'); my $test3 = $form->param('test3'); my $test4 = $form->param('test4'); my $test5 = $form->param('test5'); このようにtestは同じでその後ろに連番がついている場合の変数なのですが これが何十個もあれば、記述するのも管理するのも、少し面倒です。 それでfor文を利用し、 for ($i= 1; $i < 31; $i++){ この中の記述 } ソースを短縮したいのですが、 「この中の記述」がわかりません・・・ ご教示お願い致します。
- ベストアンサー
- Perl
- perlhogehoge
- 回答数1
- awkで単語単位での置換
awkを使って単語単位の置換を行いたいのですが、うまく行きません。 awkで単語単位で置換を行うのにはどの様にすれば宜しいのでしょうか? 何方かご存知の方いらっしゃいましたらご教授願います。 具体的にはsedの以下のコマンドと同等の事をawkで行いたいと思っています。 sed 's/\b置換前の単語\b/置換後の単語/g' 例: ・ファイルの内容 hogehoge abcdefg hogehoge hogehoge bcdef hogehoge hogehoge bcd hogehoge hogehoge abcd hogehoge hogehoge bcd hogehoge bcdef bcd hogehoge 上記ファイルをawkで1行ずつ読み込みの3,5,7行目の”bcd”のみ”HIJ”に置き換える事をしたいと考えています。 下記を試してみたのですが、うまく行きませんでした。 1.awk '{gsub(/\bbcd\b/, "HIJ", $0); print $0}' 2.awk '{gsub(/(bcd)/, "HIJ", $0); print $0}' 1だと全く置換されず、2だと3,5,7行目以外も置換されてしまいます。 どの様にしたらうまく行くのでしょうか?
- ベストアンサー
- その他(プログラミング・開発)
- A-MASAK
- 回答数1
- perlの正規表現 (ワンライナー)
以下のような文字列から2つの要素だけ抽出するようなperl/rubyのスクリプトはどのように書いたらいいでしょうか? できればワンライナーで実現したいです(が、ワンライナーとしてはちょっと複雑なのでしょうか。。。) 元の文字列 -test t001 +opt0=1024 -N n_paramX -seed 1 -test t002 +opt0=1024 -opt1=2486 -N n_paramY -test t003 +opt3=1234 -N n_paramZ ... 整形後の文字列 t001 n_paramX t002 n_paramY t003 n_praramZ ※ 各行に -test と -N が必ず存在していることは仮定してOKです スクリプトで記述した場合: while(<>) { /\-test (\S+)/; $match00 = $1; /\-N (\S+)/; $match01 = $1; print "$match00 $match01\n"; } よろしくお願いします
- 締切済み
- Perl
- tk_1980024
- 回答数2