Please, can anyone help me with this:
perl -e 'print for <{a,b,c}{1,2,3}>'
I just don't understand how it works. And it works! Producing
a1a2a3b1b2b3c1c2c3
on output.
Does anyone know what is happening inside diamond operator?
It's another way to represent glob
bing. Basically the curlies tell the glob
operator to take each comma-separated element inside and combine across all possibilities.
A clearer way to see this is to comma-separate the individual outputs:
$ perl -e 'print join ",", <{a,b,c}{1,2,3}>;'
a1,a2,a3,b1,b2,b3,c1,c2,c3
From perldoc -f glob
:
If non-empty braces are the only wildcard characters used in the glob, no filenames are matched, but potentially many strings are returned. For example, this produces nine strings, one for each pairing of fruits and colors:
@many = glob "{apple,tomato,cherry}={green,yellow,red}";
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With