Try
#!perl
use strict;
use Win32::OLE::Const 'Microsoft Excel';
Win32::OLE->Option(Warn => 3);
my $ex = Win32::OLE->GetActiveObject('Excel.Application')
|| Win32::OLE->new('Excel.Application', 'Quit');
my $wb = $ex->Workbooks->Open('c:\\temp\\Book1.xlsx') ;
my $ws = $wb->sheets('Sheet1');
$ws->Hyperlinks->Add({
Anchor => $ws->Range("A1"),
Address => $wb->{name},
SubAddress => "Sheet2!B2",
TextToDisplay => "Link to Sheet2",
ScreenTip => "Sheet2",
});
# save and exit
$wb->SaveAs( 'c:\\temp\\changed.xlsx' );
undef $wb;
undef $ex;
poj