in reply to Re: Help to override Spreadsheet/ParseXLSX.pm module
in thread Help to override Spreadsheet/ParseXLSX.pm module
Thanks Rolf!
So I think I subclassed it with a patch module :)
For my reference:
I copied the ParseXLSX.pm module to CE_ParseXLSX_patch.pm
then I removed all the subs which I did not modify,
so I was left with new and _parseworkbook
I located CE_ParseXLSX_patch.pm to a new directory in my repo:
COMMON/Spreadsheet/
COMMON is in @INC
Then I added a use Spreadsheet::CE_ParseXLSX_patch
in the original module that had
use Spreadsheet::Read
When I run the code, I get the warning that 2 subs are overridden,
And my modifications work!
Subroutine new redefined at ../Spreadsheet/CE_ParseXLSX_patch.pm line +19. at ../Spreadsheet/CE_ParseXLSX_patch.pm line 19. require Spreadsheet/CE_ParseXLSX_patch.pm called at ../portable_sp +readsheet_subs.pm line 4 main::BEGIN() called at ../Spreadsheet/CE_ParseXLSX_patch.pm line +19 eval {...} called at ../Spreadsheet/CE_ParseXLSX_patch.pm line 19 require portable_spreadsheet_subs.pm called at ../write_csv_ss.pm +line 3 require write_csv_ss.pm called at ../renameRules.pm line 5 require renameRules.pm called at ../simpleBga.pm line 3 require simpleBga.pm called at ../pin_report_modules.pm line 2 require pin_report_modules.pm called at ../read_pin_report.pm line + 3 require read_pin_report.pm called at d:/GitHub/CE_TOOLS/COMMON/TES +TS/test_acust_daisy_chain.pl line 35 Subroutine _parse_workbook redefined at ../Spreadsheet/CE_ParseXLSX_pa +tch.pm line 37. at ../Spreadsheet/CE_ParseXLSX_patch.pm line 37. require Spreadsheet/CE_ParseXLSX_patch.pm called at ../portable_sp +readsheet_subs.pm line 4 main::BEGIN() called at ../Spreadsheet/CE_ParseXLSX_patch.pm line +37 eval {...} called at ../Spreadsheet/CE_ParseXLSX_patch.pm line 37 require portable_spreadsheet_subs.pm called at ../write_csv_ss.pm +line 3 require write_csv_ss.pm called at ../renameRules.pm line 5 require renameRules.pm called at ../simpleBga.pm line 3 require simpleBga.pm called at ../pin_report_modules.pm line 2 require pin_report_modules.pm called at ../read_pin_report.pm line + 3 require read_pin_report.pm called at d:/GitHub/CE_TOOLS/COMMON/TES +TS/test_acust_daisy_chain.pl line 35
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^3: Help to override Spreadsheet/ParseXLSX.pm module (monkey-patching)
by LanX (Saint) on Apr 03, 2021 at 12:42 UTC | |
by boleary (Scribe) on Apr 06, 2021 at 11:36 UTC | |
|
Re^3: Help to override Spreadsheet/ParseXLSX.pm module
by bliako (Abbot) on Apr 03, 2021 at 19:43 UTC | |
by boleary (Scribe) on Apr 06, 2021 at 11:31 UTC |