お世話になります。perlのpushについてです。
データファイルを読み@XXに入れます。
実際はもうちょっと複雑なのですが、
foreach $DATA (@XX){$CHECK='';
($A,$B)=split(/\,/$DATA);
# $Bには改行コードを含んでいます。
if ($A==1){$A=2;$CHECK=1;}
if ($A==2){$A=3;$CHECK=1;}
if ($A==3 and $B==1){$A=1;$B=9;$CHECK=1;}
if ($CHECK==1){
push(@N,"$A,$B");}else{
push(@N,"$DATA"9;}
}
として、@Nをファイルに出力すると1行目を除き、
行の先頭になぜか空白が付いてしまいます。
別のスクリプトで読むときに数字以外は削除というような
文を加えても削除できず、
if ( $A eq '1'){・・・・
としたときにマッチしてくれません。
よって、この最初にファイルに書き出す際に空白が付かないように
したいのですが、何故付いてしまうのか?、回避方法は?
ご指導頂けたら幸いです。
付いてしまいます。
No.4ベストアンサー
- 回答日時:
補足ありがとうございます。
>print OUT "@N";
この、ダブルクォートでくくっているのが原因です。
"$var" とか、"@N"のように変数をダブルクォートでくくった場合
variable interpolation といって、変数の内容が展開されますが
配列の場合は#3の方の回答にある特殊変数$"の内容が要素の間に挟まるようになっています。
そしてその変数のデフォルト値が空白なので、空白が湧いて出てくるように見えるのです。
回避方法は#3の通り$"に空文字列を設定するか、あるいは
ダブルクォートでくくらずに
print @N;
で良いと思います。
以下ドキュメント(perldoc perlvarで確認できます)から。
$" This is like $, except that it applies to array and slice values
interpolated into a double-quoted string (or similar interpreted
string). Default is a space. (Mnemonic: obvious, I think.)
No.2
- 回答日時:
#1 の答えがないと無意味であることは感じつつ念の為確認したいのですが,
・お使いのシステムは何ですか?
・「先頭に付いている空白」の文字コードは分かりますか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excel VBAの解読について質問があります。 概要は、マクロでチェックボックスにチェックすると日 1 2023/02/10 07:50
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- Visual Basic(VBA) VBAでのループ順序について 3 2023/03/13 10:55
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) vbaのループ処理について 6 2022/05/06 15:35
- FX・外国為替取引 mql4のコンパイルエラー箇所の修正お願いします。 1 2023/03/15 16:14
- Excel(エクセル) VBAで組み合わせ算出やCOUNTIFSの処理を高速化したいです。 4 2022/04/07 02:38
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
- Perl perl このテキストファイルを簡単に配列に入れるには? 2 2022/04/27 20:24
- その他(プログラミング・Web制作) Python - Excel で Webからデータを連続取得したいのですが エラーが出ます 1 2023/07/06 20:08
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
awkスクリプトでダブルクォーテ...
-
教えて!perlから.exeファイル...
-
MySQLに画像を格納してperlで取...
-
DOSコマンドで、標準出力を出力...
-
文字コードの変換(Shift-JISか...
-
ファイル出力の改行コードをLFに
-
ドメインからIPアドレスあるい...
-
warnやdieの出力先を変更したい
-
fopenでディレクトリ内の全ファ...
-
バッチファイルの作り方(CSV→...
-
ReadLineでの読み出し行を指定する
-
パスから最後のディレクトリだ...
-
ExcelをCSV書き出す場合のシー...
-
dos変数の%~dp0は powershellで...
-
perlを用いた特定文字列間の抽...
-
複数ファイルの読み込みについて
-
perlでの三次元配列の作り方
-
Perlの変数に文字数制限(容量...
-
改行コードが勝手に
-
VBA テキストファイルを読み取...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
awkスクリプトでダブルクォーテ...
-
DOSコマンドで、標準出力を出力...
-
sprintfについて
-
エクセルVBAで素数だけを出力す...
-
C言語の問題について
-
Perl<->Oracle間での文字化けに...
-
log2の「正確な」計算方法
-
教えて!perlから.exeファイル...
-
重複するデータを抽出できる秀...
-
Perlでファイルの末尾から指定...
-
CGIから外部コマンド実行時の標...
-
ファイル出力の改行コードをLFに
-
至急お願いします。C言語で.img...
-
LWPでPOST送信した後に送信先に...
-
perlでcsvの出力について
-
バッチファイルで、記号を含む...
-
Perl 内で実行される Perl が S...
-
文字コードの変換(Shift-JISか...
-
Perlでエラーログに日時をつける
-
Active Perl の動作異常について
おすすめ情報