ibm1620 has asked for the wisdom of the Perl Monks concerning the following question:
I installed perl 5.36.0 and I tried updating my starting "template" to use v5.36; rather than use 5.010;:
It now gets the following compilation errors:#!/usr/bin/env perl use v5.36; # was 'use 5.010;' #use warnings; # unnecessary now! use strict; no if $] >= 5.018, warnings => "experimental::smartmatch"; use Getopt::Std; my %opts; getopts( 'hvi:', \%opts ) or die "getopts failed\n"; my $verbose; my $infile; while ( my ( $k, $v ) = each %opts ) { given ($k) { # <-- line 13 when ('h') { ...; } when ('v') { ++$verbose; } when ('i') { $infile = $v; } default { die "*** BUG: no handler for -$k.\n"; } } }
I know that given is still experimental (and unpopular), but I thought it was still supported by 5.36. Also, suddenly missing the declaration of $v is weird. Anyone know what's going on?syntax error at /Users/chap/private/perl/t0 line 13, near ") {" syntax error at /Users/chap/private/perl/t0 line 15, near ") {" Global symbol "$v" requires explicit package name (did you forget to d +eclare "my $v"?) at /Users/chap/private/perl/t0 line 16. Execution of /Users/chap/private/perl/t0 aborted due to compilation er +rors.
Update: also, what would be the modern way to write that loop?
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: v5.36 syntax error around given/when
by kcott (Archbishop) on Jun 09, 2022 at 23:14 UTC | |
by ibm1620 (Hermit) on Jun 10, 2022 at 14:01 UTC | |
Re: v5.36 syntax error around given/when
by hippo (Bishop) on Jun 09, 2022 at 22:01 UTC | |
by ibm1620 (Hermit) on Jun 09, 2022 at 22:37 UTC | |
by hippo (Bishop) on Jun 10, 2022 at 08:37 UTC | |
Re: v5.36 syntax error around given/when
by Anonymous Monk on Jun 10, 2022 at 14:17 UTC | |
by ibm1620 (Hermit) on Jun 10, 2022 at 18:18 UTC | |
Re: v5.36 syntax error around given/when
by BillKSmith (Monsignor) on Jun 10, 2022 at 20:22 UTC |
Back to
Seekers of Perl Wisdom