http://www.perlmonks.org?node_id=801839


in reply to Re^2: Perl VS Python
in thread Perl VS Python

% is so freaking awesome in python, i'm suprised perl doesnt' use it the same way
$ perl -e"die q!d %d! % 3" 0 at -e line 1. $ perl -e"die sprintf q!d %d! , 33" d 33 at -e line 1.

Replies are listed 'Best First'.
Re^4: Perl VS Python
by runrig (Abbot) on Oct 19, 2009 at 15:07 UTC
    So, "%" would be nice, but "freaking awesome"?? ... I dunno. Between variable interpolation and sprintf (or Interpolation if you really want to get fancy), you get nearly the same functionality in perl, and I don't think I would miss python's "%" much (if I missed it at all, which I don't, because I don't use python).

    And originally, I wasn't even talking about "%" in perl. It's freaking awesome in Vim though :-)

Re^4: Perl VS Python
by Anonymous Monk on Oct 19, 2009 at 01:25 UTC
    So, does Python not have variable interpolation? That would be a deal-breaker.
      No, not like perl, it relies on % and dictionaries (hash). Ex
      print "Hello %(name)s! Today is %(day)s!" % ( 'name' : 1, 'day' : 2 );
      In perl that might be you might write
      use Text::Sprintf::Named; my $formatter = Text::Sprintf::Named->new( {fmt => "Hello %(name)s! Today is %(day)s!"} ); $formatter->format({args => {'name' => "John", 'day' => "Thursday"}});

        Huh?

        In Perl you might write

        printf("Hello %s! Today is %s!", 'John', 'Thursday');

        At least try to make an apples to apples comparison.