#!/usr/bin/perl --
use strict;
use warnings;
## use File::Spec; our $thisf = File::Spec->rel2abs( __FILE__ );
use Path::Tiny qw/ path /;
our $thisfile = path( __FILE__ )->realpath;
Main( @ARGV );
exit( 0 );
sub Main {
my( $command, @args ) = @_;
my %commands = (
deleteafter => \&DeleteAfter,
indexpage => \&IndexPage,
servefile => \&ServeFile,
);
my $action = $commands{lc $command} || \&IndexPage;
$action->( @args );
}
sub IndexPage {
require CGI;
my( $q ) = CGI->new;
if( my $temporaryfile = AllowedTemporaryFile( $q ) ){
BackgroundDeleteAfter( $temporaryfile, $seconds );
return ServeFile( $q, $temporaryfile );
}
return ListFiles( $q );
}
sub DeleteAfter {
my $time = shift;
close STDIN;
close STDOUT;
## close STDERR; open STDERR ...;
sleep $time;
unlink($_) for @_;
}
sub BackgroundDeleteAfter {
require Proc::Background;
Proc::Background->new(
$^X,
$thisfile,
deleteafter => @_
);
}
sub AllowedTemporaryFile { ... }
sub ListFiles { ... }
sub ServeFile {
my( $q, $file ) = @_;
## see [id://1151407]
}
see Re^4: awanti Perl not playing video with vlc plugin |