Anonymous Monk,
You have been given advice regards using
Spreadsheet::WriteExcel, however I would ask that you read the documentation as it contains a
note about
$worksheet->protect();.
Since you have been pretty non specific as to which OS you are using the following information may not be of use to you, however lets take a look at the differences between 'protecting' and 'password protecting' a workbook.
'Tools'->'Options'->'Security'->'File Encryption settings for this workbook' generates the following vba code:
ActiveWorkbook.Password = "mypasswordhere"
'Tools'->'Protection'->'Protect Sheet' generates the following vba code:
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
If you are Windows based you could look at the
ActiveState article
How to convert a VBA macro to Perl, to implement either of the above in Perl.
Hope this helps
Martin