Hourglass puzzle: Difference between revisions
Content added Content deleted
(→{{header|Vlang}}: Rename "Vlang" in "V (Vlang)") |
SqrtNegInf (talk | contribs) m (→{{header|Perl}}: future-proof for 5.36, use new bitwise string operators) |
||
Line 355: | Line 355: | ||
=={{header|Perl}}== |
=={{header|Perl}}== |
||
Flip each hourglass when it runs out and note the time for each. |
Flip each hourglass when it runs out and note the time for each. |
||
<syntaxhighlight lang="perl"> |
<syntaxhighlight lang="perl">use strict; |
||
use strict; # https://rosettacode.org/wiki/Hourglass_puzzle |
|||
use warnings; |
use warnings; |
||
use feature 'bitwise'; |
|||
findinterval( $_, 4, 7 ) for 1 .. 20; |
findinterval( $_, 4, 7 ) for 1 .. 20; |
||
Line 365: | Line 364: | ||
{ |
{ |
||
my ($want, $hour1, $hour2) = @_; |
my ($want, $hour1, $hour2) = @_; |
||
local $_ = (('1' | ' ' x $hour1) x $hour2 | ('2' | ' ' x $hour2) x $hour1) x $want; |
local $_ = (('1' |. ' ' x $hour1) x $hour2 | ('2' |. ' ' x $hour2) x $hour1) x $want; |
||
print /(?=\d).{$want}(?=\d)/ |
print /(?=\d).{$want}(?=\d)/ |
||
? "To get $want minute@{[$want == 1 ? '' : 's' |
? "To get $want minute@{[$want == 1 ? '' : 's' |