perl smplls.pl Book1.xls 00 1 'Root Entry' (pps 0) ROOT 00.01.1900 00:00:00 01 1 'Workbook' (pps 1) FILE 1000 bytes 02 2 ' SummaryInformation' (pps 2) FILE 1000 bytes 03 3 ' DocumentSummaryInformation' (pps 3) FILE 1000 bytes #### #!/usr/bin/perl use strict; use warnings; use OLE::Storage_Lite; my $file = 'Book1.xls'; my $stream_name = "\5SummaryInformation"; # Convert stream name to UTF16. $stream_name = pack 'v*', unpack 'C*', $stream_name; # Create the OLE reader object. my $ole = OLE::Storage_Lite->new($file); # Find the required stream in the OLE container. my $stream = ($ole->getPpsSearch([$stream_name], 1, 1))[0]; die "Couldn't find required OLE data in $file. $!\n" unless $stream; # Do something with the data. my $data = $stream->{Data}; # Remember to use binmode() on Windows. print $data;