in reply to print join n times on a line

Typically for Perl, there are several ways of doing that. Here's one:

@a = 'a'..'z';; $s = join ',', @a;; $s =~ s[(,[^,]+){6}\K,][\n]g;; print $s;; a,b,c,d,e,f,g h,i,j,k,l,m,n o,p,q,r,s,t,u v,w,x,y,z

Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.

Replies are listed 'Best First'.
Re^2: print join n times on a line
by GotToBTru (Prior) on Apr 12, 2011 at 14:49 UTC
    The format of the substitution command is one I haven't seen before. Is s[xx][yy] equivalent to s/xx/yy/?
    Also, it does not work as written. I am using Perl 5.8.8.

    Update: fixed tags to show square brackets
      Is s[xx][yy] equivalent to s/xx/yy/?
      Yes. From perlop:
      Any non-whitespace delimiter may replace the slashes.
      Also, it does not work as written. I am using Perl 5.8.8.
      The \K requires perl 5.10 or higher (perl5100delta).
      Is sxxyy equivalent to s/xx/yy/?

      Yes. You can also use s<xx><yy> & s{xx}{yy] & s(xx)(yy) & any combination thereof.

      it does not work as written. I am using Perl 5.8.8.

      I think \K is a 5.10+ism. It was released 3 1/2 years ago and has many very useful additions, especially where regex are concerned. You should seriously consider upgrading.

      As a poor substitute, you could use this for 5.8:

      @a = 'a'..'u';; $s = join ',', @a;; $s =~ s[((?:,[^,]+){6}),][$1\n]g;; print $s;; a,b,c,d,e,f,g h,i,j,k,l,m,n o,p,q,r,s,t,u

      Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
      "Science is about questioning the status quo. Questioning authority".
      In the absence of evidence, opinion is indistinguishable from prejudice.