Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

Re^3: Data::Dumper output

by parv (Parson)
on May 08, 2021 at 11:28 UTC ( [id://11132273]=note: print w/replies, xml ) Need Help??


in reply to Re^2: Data::Dumper output
in thread Data::Dumper output

It is therefore highly probable as everyone else has surmised that you have accidentally stringified $request at some point in the code you have not shown.

...

I was trying to print with:

print Dumper %$request . "\n";

Removing the concatenated return character gives...

...

To continue to use \n, use a list with print ...

# Need to use "Dumper()" else "\n" will be swallowed by "Dumper ... ;" + print Dumper( ... ), qq[\n];

Replies are listed 'Best First'.
Re^4: Data::Dumper output
by Bod (Parson) on May 08, 2021 at 12:27 UTC
    To continue to use \n, use a list with print ...

    Yes. Although I'd use a separate line for clarity

    print Dumper $data_structure; print "\n";
    I just feel that is clearer and less prone to the sort of error I created.

      To continue to use \n, use a list with print ...

      Yes. Although I'd use a separate line for clarity

      print Dumper $data_structure; print "\n";

      Just use say:

      say Dumper $data_structure;

      say outputs a trailing newline unless the arguments already contain a trailing newline.

      I just feel that is clearer and less prone to the sort of error I created.

      I'm no Lisp guy, but using a few more brackets helps to avoid ambiguity and misunderstandings between humans and computers. If you call a function or method, add brackets around the argument list. That's what I do, with only very few exceptions - mostly stuff that is listed in perlfunc, but behaves more like a keyword or a C macro (__FILE__, __LINE__, __PACKAGE__, do, eval, package, use, require) than like a function.

      I would have written ...

      say Dumper($data_structure);

      ... in code for perl 5.10 and newer (i.e. with use v5.10 in the file), or ...

      print Dumper($data_structure),"\n"; # or print Dumper($data_structure)."\n";

      ... in code for older perls.

      Alexander

      --
      Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so". ;-)
        say outputs a trailing newline unless the arguments already contain a trailing newline.

        Are you sure about that? The documentation makes no mention of such a condition and this example suggests that it is not the case:

        $ cat say.pl #!/usr/bin/env perl use strict; use warnings; use feature 'say'; my $x = "foo\n"; my $y = 'bar'; say $x; say $y; $ ./say.pl foo bar $

        🦛

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others learning in the Monastery: (5)
As of 2024-04-19 02:50 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found