use strict; use warnings; sub mysub($$) { my ($a, $b) = @_; print "$a\n"; print "$b\n"; } my $x = undef; mysub($x && $x->[0] =~ /abc/, $x = []);
рдХреНрдпрд╛ рдкрд╣рд▓реА рджрд▓реАрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдореНрдпрд╛рдК рдХреЛ рдХреБрдЫ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдмреВрд▓рд┐рдпрди рд╕рдВрджрд░реНрдн рдореЗрдВ рд╕рдЪ рд╣реИ?
рдпрд╣ рдкреНрд░рддреАрдд рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП $ x рдХреЛ рдПрдХ рд╕рд░рдгреА рдХрд╛ рд╕рдВрджрд░реНрдн рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдЗрд╕рдХреЗ рдкрд╣рд▓реЗ рддрддреНрд╡ рдореЗрдВ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди 'рдПрдмреАрд╕реА' рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рд▓реЗрдХрд┐рди рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рд╢рд╛рдпрдж
$perl poc.pl ARRAY(0xdb6d48) ARRAY(0xdb6d48)
рдорд╛рдорд▓рд╛ рдХреНрдпрд╛ рд╣реИ?
- рдкрд░реНрд▓ рдореЗрдВ (рдХрдИ рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ) X && Y , рдпрджрд┐ X рдЧрд▓рдд рд╣реИ, рддреЛ рди рдХреЗрд╡рд▓ рдЭреВрдареЗ ( Y рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛) рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдВрдЧреЗ, рд▓реЗрдХрд┐рди X рдЦреБрдж (рдЬреЛ рдХрд┐ рдЭреВрдареА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП)
- рдкрд░реНрд▓ рдореЗрдВ рд╕рднреА рдкреИрд░рд╛рдореАрдЯрд░ рд╕рдВрджрд░реНрдн рджреНрд╡рд╛рд░рд╛ рдкрд╛рд░рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдореВрд▓реНрдп рд╕реЗ рдирд╣реАрдВред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЬрдм рдкрд╣рд▓реЗ рддрд░реНрдХ рдХреА рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ
$x && $x->[0] =~ /abc/
$ x рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИ рдпрд╛рдиреА рдЕрд╕рддреНрдп, рдЗрд╕рд▓рд┐рдП, рдкрд╣рд▓реЗ рддрд░реНрдХ рдХреЗ рдмрдЬрд╛рдп, $ x рд╣реА рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ,
рдЬрдм рджреВрд╕рд░реЗ рддрд░реНрдХ рдХреА рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ $ x рдХреЛ рдорд╛рди рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ [] (рдПрдХ рдЦрд╛рд▓реА рд╕рд░рдгреА рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ), рдЗрд╕рд▓рд┐рдП рдЬрдм mysub рдХреЛрдб рдЪрд▓рдирд╛ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рджреЛрдиреЛрдВ рддрд░реНрдХ
рдЗрд╕рдореЗрдВ $ x рдХрд╛ рд╕рдВрджрд░реНрдн рд╣реИ (рдЬреЛ рдПрдХ рдЦрд╛рд▓реА рд╕рд░рдгреА рд╣реИ, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ рд╕рддреНрдп рд╣реИ)
рдпрджрд┐ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдб рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдмрдЧ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рдХреЛрдб рдореЗрдВ рдкрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛:
ok( ($errors && ($errors->[0] =~ /My Exception/i)), "should catch exception $errors->[0]" );
(рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдСрдЯреЛрд╡рд┐рд╡рд┐рдлрд┐рдХреЗрд╢рди рдкрд░реНрд▓ рдХреА рдПрдХ рдФрд░ рдЕрджреНрднреБрдд рд╡рд┐рд╢реЗрд╖рддрд╛ рд╢реБрд░реВ рд╣реЛ рдЧрдИ рд╣реИ - рдпрджрд┐ рдЖрдк $ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреЗ рд╣реИрдВ -> [0] рддреЛ $ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдмрди рдЬрд╛рдПрдВрдЧреА,
рдЕрдЧрд░ $ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдЗрд╕ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕реЗ рдкрд╣рд▓реЗ рдереА)