Bir yöntem işleyici alt yordamına ek değişkenler iletmenin bir yolu var mı? Genel olarak alt programın kapsamı dışındaki global değişkenleri kullanmayı sevmiyorum. Ben, işleyicilerin globals kullanmadan erişmesini istediğim veritabanı bağlantısı ve sınıf örnekleri gibi şeylerim var. Konsolda hata ayıklamayı kullanarak, her işleyici çağrısı için @_ boş gibi görünüyor.perl dansçısı - yöntem argümanları alt yordamlarına nasıl ek argümanlar iletir?
#!/usr/bin/perl
use strict;
use Dancer;
use Data::Dumper;
set('logger' => 'console');
my $somevar = SomeClass->new();
get('/' => sub{
debug(Dumper(@_));
debug($somevar);
return('hello world');
});
Uygulamam için çalışacağından emin değil. Ana handler rutininden önce her maçta koşmadan önce görülüyor. Kullanmak istediğim değişkenlerden bazıları bir defalık kurulum. Her bir http yöntemi çağrısı üzerine yeniden başlatmak istemediğim sınıf örneklerini içerirler. Keşke böyle bir şey daha olsaydı, ama sadece bir kez çağrıldı. –
Ayrıca çengel dışında "vars" kullanmayı denedim. Bu şikayet etmiyor. Ancak, yöntem işleyicisinin içinde değer yoktur. –
'Sadece bir kez çağrıldı' ve 'sınıf örnekleri' sesi gibi sadece paket değişkenlerini kullanmak isteyebilirsiniz. Herhangi bir işleyicinin dışında bildirilen $ dbh = DBI-> connect(); 'gibi bir şey. – RickF