A colleague has asked me recently why the following ends in Global symbol "$lib" requires explicit package name:
#! /usr/bin/perl use warnings; use strict; use lib my $lib = '.'; print $lib;

My answer was that the code is equivalent to

BEGIN { require lib; 'lib'->import(my $lib = '.'); }

But I was kind of unhappy about it. Is it a feature that use creates a scope around its parameters, or was it just easier to implement it like that? Have you noticed the behaviour and what do you think about it?

($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,