perl - Print pipe per character instead of newline -
in perl now:
while (<$pipe>) { print $_; }
but gives me output linewise. how can make print lets say, each character, or split \r
instead of \n
. pipe feeds me data on newline.
(i want print output process, , process using \r
print process progress, ends simple line 100% me..)
perl has concept of “input record separator” $/
set separate lines. can read full documentation here. whenever read line/record filehandle, data read until end of file, or until current string inside $/
variable has been read.
for example: given input bytes aabaa
, , $/ = "b"
, my @records = <$fh>
produce ('aab', 'aa')
. note separator included, can removed chomp
(regardless of separator has been set to).
when reading file, $/
has set before lines read, so:
local $/ = "\r"; # "local" avoids overriding value everywhere while(my $line = <$pipe>) { chomp $line; ... }
there few special values $/
:
- the empty string
$/ = ''
treats sequence of 2 or more consecutive\n
s separator (“paragraph mode”). - if set numeric reference, number of characters read:
$/ = \42
(read in 42-character chunks). in case, 1 rather useread
function.
Comments
Post a Comment