sub plugin_start { my $self=shift; my $plugin_file=shift; my $plugin_name=$self->plugin_name_create($plugin_file); return (undef,"No valid plugin_name") unless($plugin_name); my $package_name="my_script::plugin::$plugin_name"; my $load_ok=0; my $code; if(my $fcode=$self->plugin_filtered_load($package_name,$plugin_file)) { $load_ok=1; $code=$fcode; } else { $code=$self->plugin_raw_load($plugin_file); $code=$self->plugin_code_filter($code,$package_name); } my $start_ok=eval($code); my $error; my $plugin_obj; if($start_ok) { $plugin_obj=$pakage_name->new(); $self->plugin_filtered_save($code,$pakage_name) unless($load_ok); } else { $error=$@; } return ($plugin_obj,$error); }