|
>>2082 猫じゃらし ちゃんと環境を書きましょう。Windows ですか? 1. ヘッダもそのまま 2.gif に出力してしまう。 2. 改行が入ってしまうなら、Windows でテキストモードになっているのかも。 ということで、 # ヘッダまでを読み飛ばす while (<$remote>){ last if ( $_ eq "\n" || $_ eq "\r\n" ); } # ここからが画像データ while (<$remote>){ $outdata .= $_; } open(OUT, "> 2.gif"); binmode(OUT); print OUT "$outdata"; close(OUT); でどうでしょう。 foreach を使わず while を使うのは、foreach の () 内はリストを要求する ので、<$remote> はリストコンテキストで評価され、 foreach ("1行目のデータ", "2行目のデータ", ..., "最終行のデータ"){ と展開されてしまうからです。よって、 foreach (<$remote>){ last if ( $_ eq "\n" || $_ eq "\r\n" ); } の時点でファイルハンドル <$remote> から全てのデータを読み 切ってしまうので、last で抜けた後には <$remote> という ファイルハンドルにはデータが残っていません。 foreach (scalar(<$remote>)){ で強制的にスカラーコンテキストにするならいいんですが、 この場合は素直に while を使った方がよいでしょう。 |
|
>>68user 環境を書き忘れてすいません、マナー違反でしたね、、、 ちなみに、環境はWinMEでActivePerlを動かしている状態です。 さて、68userさんのレスにあったものをペーストして ソースは下のようになりました。 http://uchu.hypermart.net/image2.txt これで無事動かすことができました。ありがとうございます。 このHPは、これからも勉強参考にさせてもらいますね。 ではでは、、 |
|
はじめまして超初心者の者です。 質問なのですけど会社で渡されたCシェルのプログラムに mailx -s というコマンドがありまして調べても見つかりません。 UNIXのことなどさっぱり分からないので困っています。 知っている人がいたら教えてください。 お願いします。m(__)m |
|
>>2085 kazu ちゃんと OS 名やバージョンなどの情報を書きましょう。 > mailx -s mailx は SystemV 系 UNIX のコマンドです。Linux にも あるようですが、*BSD にはないはずです (FreeBSD なら ports で mail/mailx がありますが)。 まぁメールの送信だけなら mail も mailx も同じようなもの なので、そのまま mail に読み変えればよいでしょう。 |
|
はじめまして。早速なんですが、UNIXの運用について質問があります。ログインユーザーごとに使用したい文字コードが違うんですが、どのように設定したらよいのでしょうか?教えてください。 |
|
>>2087 sato.k ログインユーザごとに ~/.cshrc や ~/.profile で setenv LANG ja_JP.eucJP とか LANG=ja_JP.eucJP; export LANG とか書くか、/etc/profile や /etc/csh.cshrc でユーザ名をみて 適切な locale を設定するのはどうでしょうか。 具体的な locale 名や、/etc/ の下のファイル名などは OS によって違いがあるので、お使いのシステムではどうなって いるか確認して下さい。 FreeBSD なら /etc/login.conf に各ロケール分のログイン クラスを作るのもいいかな。 |