Compiling Symbian context-sensitive help fails with recent versions of Perl (Known Issue)
Article Metadata
Code Example
Source file: Media:Perlchanged.zip
Tested with
Devices(s): N/A
Compatibility
Platform(s): S60 3rd Edition and later
Article
Keywords: N/A
Created: rathodavinash
(29 Jun 2007)
Last edited: hamishwillee
(01 Aug 2012)
Description
If you have a recent version of ActivePerl, you may face problems when compiling help files for your Symbian application. This known issue has been verified by Nokia Developer.
There are two options:
- Switch to an older version of ActivePerl (the officially supported version is v5.6.1 build 635, which can be downloaded here) or
- Change the files param.pm and args.pm
These two files can be found in your SDK installation's Epoc32\tools\perllib path. In the file args.pm, change the following line (# 688)
$self->_iSpecArray->{$aName}= New CArgsSpec($aName, $aDefault, $aPattern,
$aExclusions, $aMandatory, $aRepeatable);
to
$self->_iSpecArray->{$aName}= CArgsSpec->New($aName, $aDefault, $aPattern,
$aExclusions, $aMandatory, $aRepeatable);
In the file params.pm, search for the word "New" and replace it with foo->New(); for example, if there is a function New CLogs(), change it to CLog->New().
Take backups of the original files.
Alternatively, you can download File:Perlchanged.zip


22 Sep
2009
This article highlights the issue of context-sensitive help file creation failure, when using a newer version of perl. This article provides a good solution to overcome this issue.
Editing params.pm is only partial solution
Compiling will succeed, but special characters like ' (singlequote) or diacritics will be destroyed. This can be checked in intermediate cshlp.xml, where singlequote should appear as entity &# 8216 (on perl 5.6), but on newer perl cshlpcmp will insert the actual character. This is of particular concern for languages other than English Agent_L 13:07, 13 August 2010 (UTC)