my $object = Class->new();
Class *object = new Class();
2014-05-04T16:28:51 hlubenow
auto object = std::make_shared<Class>();
Class object;
Quoteedit: ich hab grad die Seite durchgelesen. Das hat mit einem factory pattern nicht wirklich was zu tun
2014-05-04T20:53:53 MuffiWas immer du damit sagen wolltest
QuoteVorteile
my $object = require 'Class';
QuoteDer lokale Pfad zur Datei liegt im @INC-Array und muss nicht extra angegeben sein
Quotebeides in einer einzigen Zeile.
QuoteDer Name der Klasse kann in einer Variablen stehen: my $obj = require "$class.pm";
Quotezum schluss hätte ich noch gerne code in einer beliebigen sprache gesehen, bei dem man wirklich nur einen funktionsaufruf hat
1 2 3 4
my $self = shift; # meine Klasseninstanz my $variable_for_own_use = $self->foo($variable_aus_eigener_Verwendung);
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
use strict; use warnings; use FindBin q($Bin); use CGI; use lib "$Bin/path/to/webside/code"; use sys::Config; use sys::Core; my $cgi=CGI->new(); my $conf=sys::Config->new(); my $core=sys::Core->new($cgi,$conf); my $uri=$core->get_uri(); my @allowed=( [qr/sub1\.seite\.de/,'sites::Sub1'], [qr/sub2\.seite\.de/,'sites::Sub2'], [qr/www\.seite\.de/,'sites::Main'], [qr//,'sites::Error'], ); @allowed=@{$conf->get('websites')}; my $run; for(@allowed) { my ($r,$m)=@$_; if($uri=~$r and $m and eval("require $m") ) { $run=$m; last; } } die("NO WEBSITE") unless $run; my $site=$run->new($cgi,$conf); die($run->error()) unless $site; print $site->generate();
2014-05-05T20:19:40 rostiAuch klar: Bei jedem Request den ganzen Haufen Code zu kompilieren [...]
2014-05-05T20:19:40 rostiWenn du damit meinst, dass durch jeden Request der Brontosaurus CGI und dessen behäbige Kinder geladen werden müssen magst du Recht haben, dass sowas dauert und nicht gerade Tausende Requests/Sekunde zulässt.Auch klar: Bei jedem Request den ganzen Haufen Code zu kompilieren, wo für eine Response oder eine Benutzeraktion nur ein Bruchteil davon gebraucht wird, wäre eine DoS-Attack.