Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

Re: String differs from printing to STDOUT and printing to file

by rjt (Curate)
on Oct 23, 2019 at 10:40 UTC ( [id://11107882]=note: print w/replies, xml ) Need Help??


in reply to String differs from printing to STDOUT and printing to file

I can not reproduce your results, in part because your results are strange.

It would help if you posted a complete example that demonstrates your problem, and enclose that in <code> tags. Here's what I used to test:

use 5.010; use strict; use warnings; use Carp; my $var = 'QeTEv2804'; printf "%s.\n", $var; open my $debug, '>>', 'debug.txt' or confess "Couldn't open file: $!"; printf $debug "%s.\n", $var; close $debug;

debug.txt:

$> hexdump -C debug.txt 00000000 51 65 54 45 76 32 38 30 34 2e 0a |QeTEv2804 +..| 0000000b

In your output, those control characters are NULs, not line endings, and they somehow come before the `.' in your output, suggesting they are part of $var itself. If I append NULs: $var = "QeTEv2804\0\0\0"; and re-run the above script, the output still looks like this, because those \0s are unprintable:

QeTEv2804.

Are you sure this is your actual code? Something seems fishy.

Edit: Took out irrelevant info from above paragraph and added example that reproduces the OP's result.

Another thing I'd suggest is to always use the 3-argument open with lexical file handle, as I did in my example. It won't affect your results in this case, but it's a best practice.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://11107882]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others exploiting the Monastery: (4)
As of 2025-05-24 22:22 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?
    erzuuliAnonymous Monks are no longer allowed to use Super Search, due to an excessive use of this resource by robots.