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

Here's the goal: make a function that takes any number of equal-length strings, and returns an array of strings, where each string is the concatenation of the Nth character in each string.

Sample input: qw( jeff john mary )
Sample output: qw( jjm eoa fhr fny )

Here are my attempts:

# 51 chars sub s2a{@_=@_;reverse+map{join"",map+chop,@_}1..length$_[0]} # 51 chars sub s2a{@_=@_;map{join"",map+s/(.)//s&&$1,@_}1..length$_[0]} # 48 chars sub s2a{map{join"",map+s/(.)//s&&$1,@_=@_}1..length$_[0]} # 47 chars sub s2a{map{join"",map{s/(.)//s;$1}@_=@_}1..length$_[0]} # 45 chars sub s2a{map{join"",map{s/.//s;$&}@_=@_}1..length$_[0]}


japhy -- Perl and Regex Hacker