Hi Abhishek,
Please use <code> tags to format your code and example input. See also How do I post a question effectively?
A first quick analysis is that your problem seems to stem from the use of the Switch module - its use is discouraged, please see the section "Limitations" in its documentation. If I replace the switch statement with next if /^[*\/]|simulator\s+lang|^include/i;, your code appears to run the same no matter the order of the subroutines.
There may be other possible places for improvement, I haven't read the code in detail yet, but that seems to be the main problem.
Hope this helps,
-- Hauke D
In reply to Re: Perl Code Changes Behavior if Two Subroutine definitions are swapped
by haukex
in thread Perl Code Changes Behavior if Two Subroutine definitions are swapped
by rkabhi
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |