Hourglass puzzle: Difference between revisions

Content added Content deleted
(→‎{{header|Vlang}}: Rename "Vlang" in "V (Vlang)")
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">#!/usr/bin/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'