Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

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

by rjt (Curate)
on Oct 23, 2019 at 10:40 UTC ( #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? | Other CB clients
Other Users?
Others romping around the Monastery: (3)
As of 2023-03-26 08:52 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Which type of climate do you prefer to live in?






    Results (63 votes). Check out past polls.

    Notices?