Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number

Re^4: question regarding "v" flag of printf

by lightoverhead (Pilgrim)
on May 23, 2013 at 16:57 UTC ( #1034990=note: print w/replies, xml ) Need Help??

in reply to Re^3: question regarding "v" flag of printf
in thread question regarding "v" flag of printf

As it was described, "This flag tells Perl to interpret the supplied string as a vector of integers, one for each character in the string. Perl applies the format to each integer in turn, then joins the resulting strings with a separator (a dot . by default)"

and it's actually as rjt said,"Perl interprets each character in the string as its index in your character set."

it's "index",not the number in the string.

  • Comment on Re^4: question regarding "v" flag of printf

Replies are listed 'Best First'.
Re^5: question regarding "v" flag of printf (ordinal)
by Anonymous Monk on May 23, 2013 at 17:55 UTC

    Um, whoa :) but it also says This can be useful for displaying ordinal values of characters in arbitrary strings , so to review all it says:
    * interpret the supplied string (argument is string)
    * as a vector of integers (list of integers),
    * one for each character in the string (character by character, integer by integer).
    * ordinal values of characters in arbitrary strings (ordinal means numeric, means ordinal values of chracters )
    *  printf "%vd", "AB\x{100}";           # prints "65.66.256" (A is 65, B is 66, \x{100} is 256 )

    I suppose its better say/link ordinal (ord) values of characters (chr) and give explicit chr/ord example

    Or say ...interpret supplied string as list of integers seperated by a dot. Each character is a positive integer, the ordinal(ord) value of the character (chr).

    $ perl -le " printf qq{v%vd\n}, join q//, map {chr $_} 1000, 44000, 99 +000 , 12 " v1000.44000.99000.12 $ perl -le " printf qq{v%vd\n}, v3.14.16.5 " v3.14.16.5 $ perl -le " printf qq{v%vd\n}, v1.2.3 " v1.2.3 $ perl -le " printf qq{v%vd\n}, chr(1).chr(2).chr(3) " v1.2.3 $ perl -le " print q{v}, join q{.}, ord(chr 1), ord(chr 2), ord(chr 3) + " v1.2.3 $ perl -MData::Dump -e " dd(join q//, chr 1, chr 2, chr 3 ) " "\1\2\3" $ perl -le " printf qq{v%vd\n}, qq{\1\2\3} " v1.2.3 $ perl -le " printf qq{bits are %0*v8b\n}, q{ }, q{123}; " bits are 00110001 00110010 00110011 $ perl -le " printf qq{bits are %0*v8b\n}, q{-}, q{123}; " bits are 00110001-00110010-00110011 $ perl -le " print q{bits are }, join q{-}, unpack q{(B8)*}, q{123} " bits are 00110001-00110010-00110011
      I suppose more linking to glossary would be good in all the pod or perlmonks :)  [doc://perlglossary#vector], [doc://perlglossary#v-string], [doc://perlglossary#ordinal], [doc://perlglossary#string], [doc://perlglossary#character] vector, v string, ordinal, string, character

      Thank you. I think what you wrote should be included in perldoc to help people really understand this flag.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1034990]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (9)
As of 2018-07-19 15:19 GMT
Find Nodes?
    Voting Booth?
    It has been suggested to rename Perl 6 in order to boost its marketing potential. Which name would you prefer?

    Results (411 votes). Check out past polls.