#!/usr/bin/perl -w
sub
main {
my
%opts
;
getopts(
''
, \
%opts
) or
die
"usage error\n"
;
my
$gifpath
=
$ARGV
[0] ||
die
"missing path to GIF\n"
;
my
$msg
= MIME::Lite->new(
To
=>
'me@somewhere.com'
,
Subject
=>
'GIF test'
,
Type
=>
'multipart/mixed'
);
open
IN,
"<$gifpath"
or
die
"open $gifpath: $!\n"
;
binmode
IN;
my
@data
;
local
$_
=
''
;
while
(
read
(IN,
$_
, 1024)) {
push
@data
,
$_
;
}
close
IN;
if
(1) {
my
$path
=
$gifpath
;
$msg
->attach(
Subject
=>
"Read path directly"
,
Path
=>
$path
,
Type
=>
'image/gif'
);
}
if
(1) {
my
$path
=
"cat $gifpath |"
;
$msg
->attach(
Subject
=>
"Cat path to pipe, and read that"
,
Path
=>
$path
,
Type
=>
'image/gif'
);
}
if
(1) {
$msg
->attach(
Subject
=>
"Read data as array"
,
Data
=> \
@data
,
Type
=>
'image/gif'
);
}
if
(1) {
$msg
->attach(
Subject
=>
"Read data as string"
,
Data
=>
join
(
''
,
@data
),
Type
=>
'image/gif'
);
}
$msg
->
print
(\
*STDOUT
);
}
exit
(
&main
? 0 : -1);
1;