in place - Using perl one-liner in perl script -


i embedded 1 perl one-liner in 1 perl script , purpose of in-place replace 1 string each line of files name extension .ini, found every file backed .bak.

since in one-liner, specify -i rather -i.bak, wonder why .bak file generated.

foreach $dir (glob "*.ini") {     system qq(perl -i -pe 's|default|utf-8|' $dir);           } 

another question whether there better,concise perl script achieve same target (without .bak file backed up), regardless of one-liner or not.

i think may looking @ old data files. far know, perl won't assume default file extension of .bak under circumstances

if specify option -i attempt edit file in-place deleting input file after has been opened , creating new output file same name. old file remains readable until closed

this technique doesn't work on windows, , error use bare -i option on platform

there no need shell out second perl process edit files. can done this. internal variable $^i corresponds value of -i option on command line. once again, if working on windows system $^i may not empty string , need set .bak or similar

{     local @argv = glob 'f.*';     local $^i = '';  # must non-blank on windows      while ( <> ) {         s/default/utf-8/g;         print;     } } 

Comments

Popular posts from this blog

gridview - Yii2 DataPorivider $totalSum for a column -

java - Suppress Jboss version details from HTTP error response -

Sass watch command compiles .scss files before full sftp upload -