in reply to Re^4: Declaring with my, assigning, and testing in same line (attributes)
in thread Declaring with my, assigning, and testing in same line
The check would be done only onceMy tests show otherwise:
#!/usr/bin/perl use warnings; use strict; use feature qw{ say }; use Syntax::Construct qw{ // }; { package Array::Nonempty; use Tie::Array; use parent -norequire => 'Tie::StdArray'; use Carp; sub CLEAR { my $self = shift; $self->[0] = []; } sub TIEARRAY { my ($class, $untie) = @_; bless [ [], $untie ], $class } sub EXTEND { my ($self, $size) = @_; croak "Cannot be empty" if 0 == @{ $self->[0] } && 0 == $size; $self->SUPER::EXTEND($size); # Prevent "untie attempted while 1 inner references still exis +t" my $untie = $self->[1]; undef $self; untie @$untie; } } { package UNIVERSAL; use Attribute::Handlers autotieref => { Nonempty => 'Array::Nonemp +ty' }; } my @list = 1 .. 5; for (1 .. 10) { my @check :Nonempty = @list; shift @list; say tied(@check) // 'not tied'; say "@check"; }
Wrong I was, young padawan. ;-)There are ways how not to be wrong.
($q=q:Sq=~/;[c](.)(.)/;chr(-||-|5+lengthSq)`"S|oS2"`map{chr |+ord }map{substrSq`S_+|`|}3E|-|`7**2-3:)=~y+S|`+$1,++print+eval$q,q,a,
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^6: Declaring with my, assigning, and testing in same line (attributes)
by LanX (Saint) on Dec 13, 2015 at 19:39 UTC | |
by choroba (Cardinal) on Dec 15, 2015 at 09:44 UTC | |
by LanX (Saint) on Dec 15, 2015 at 10:23 UTC |
In Section
Seekers of Perl Wisdom