Advertisement
Guest User

Untitled

a guest
Sep 25th, 2017
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 1.26 KB | None | 0 0
  1. #!/usr/bin/perl
  2.  
  3. use strict;
  4. use warnings;
  5.  
  6. foreach (@ARGV){
  7.     open my $FHIN, '<', $_;
  8.     open my $FHOUT, '>', $_ . '.pm';
  9.     my @path = split/\//;
  10.     my $package = pop @path;
  11.     print $FHOUT "package CDP::$package;\n\n";
  12.     my ($object, @functions);
  13.         foreach (<$FHIN>) {
  14.         chomp;
  15.         ($object, my $function) = split/\./,$_;
  16.         push @functions, $function;
  17.     }
  18.  
  19.     print_head($FHOUT);
  20.  
  21. #   print $FHOUT "    $_\n" foreach @functions;
  22.    
  23. #   print_mid($FHOUT);
  24.  
  25.     print $FHOUT "    $_\n" foreach @functions;
  26.  
  27.     print_tail($FHOUT);
  28.  
  29.     foreach my $function (@functions) {
  30.         print $FHOUT 'sub ' . $function . " {\n";
  31.         print $FHOUT '    my $client = shift;' ."\n";
  32.         print $FHOUT '    $client->call(';
  33.         print $FHOUT "\'$object.$function\',";
  34.         print $FHOUT '@_);' ."\n";
  35.         print $FHOUT '}' . "\n\n";
  36.     }
  37.     print $FHOUT "\n1;\n";
  38.     print $FHOUT '__END__' . "\n";;
  39.     close $FHIN;
  40.     close $FHOUT;
  41. }
  42.  
  43. sub print_file {
  44.     my ($FHIN, $FHOUT) = @_;
  45.     foreach (<$FHIN>) {
  46.         print $FHOUT $_;
  47.     }  
  48. }
  49.  
  50. sub print_head {
  51.     my $FHOUT = shift;
  52.     open my $FHIN, '<', './template/head';
  53.     print_file $FHIN, $FHOUT;
  54. }
  55.  
  56. sub print_mid {
  57.     warn "In mid";
  58.     my $FHOUT = shift;
  59.     open my $FHIN, '<', './tempalte/mid';
  60.     print_file $FHIN, $FHOUT;
  61. }
  62.  
  63. sub print_tail {
  64.     my $FHOUT = shift;
  65.     open my $FHIN, '<', './template/tail';
  66.     print_file $FHIN, $FHOUT;
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement