On Sun, 05 Oct 2008 19:06:35 -0400, Mr. Shawn H. Corey wrote: > On Sun, 2008-10-05 at 15:11 -0700, Randal L. Schwartz wrote: >> my @result = map [split /-/], glob "{a}-{b,c}-{d,e,f}-{a}"; >> >> :-) >> >> But seriously, why does this come up often? > > Because your solution relies on knowledge of bash which many Windows > users do not have.
Not bash, but File::Glob, which Windows users of Perl do have. Did you see the smiley? Randal might have been more inclined to give a less cute answer if the poster said what he wanted this for, because it does sound like homework. But anyway, here's my less cute answer: use Data::Dumper; print Dumper combine( ['a'], [qw(b c)], [qw(d e f)], ['a'] ); sub combine { my $x = shift or return []; return map { my $y = $_; map { [ $y, @$_ ] } combine( @_ ) } @$x; } > Also this ability of glob is not documented in perldoc. Yes it is. perldoc -f glob says: Beginning with v5.6.0, this operator is implemented using the standard "File::Glob" extension. See File::Glob for details. Following the reference to File::Glob we find: The metanotation "a{b,c,d}e" is a shorthand for "abe ace ade". -- Peter Scott http://www.perlmedic.com/ http://www.perldebugged.com/ -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] http://learn.perl.org/