包变量可以在包内的任何地方使用不需要加包名,而在包外时要加包名。 package main; $main_i = "In main Package!"; print("1----$main_i/n"); #包内变量 已经初始化 print("2----$main_ii/n"); #包内变量 还没有初始化 print("3----$other::main_j/n"); #包外变量 还没有初始化 #进入other包 package other; $main_j = "In other Package!"; print("1----$main::main_i/n"); #包外变量 已经初始化 print("2----$main::main_ii/n"); #包外变量 还没有初始化 print("3----$main_j/n"); #包内变量 还没有初始化 #重新返回main包 package main; $main_ii = "Back In main Package!"; print("1----$main_i/n"); #包内变量 已经初始化 print("2----$main_ii/n"); #包内变量 已经初始化 print("3----$other::main_j/n"); #包外变量 已经初始化 运行结果为: ---------- perl ---------- 1----In main Package! 2---- 3---- 1----In main Package! 2---- 3----In other Package! 1----In main Package! 2----Back In main Package! 3----In other Package!