Private:Bugs

Severity

 * Very High - critical failure of eCrystals or EPrints platform resulting in critical loss of data
 * High - major loss of data though a repeatable process (i.e. incorrect code)
 * Medium - minor loss of data (i.e. cryptic code)
 * Low - misleading (or no) user feedback (EPrints notice, warning and error messages), cosmetic issues, CSS and HTML formatting
 * Very Low - spelling and grammar errors

Quick Fixes
Hard-coded Strings

use EPrints::SystemSettings; $EPrints::SystemSettings::conf->{'base_path'}; # evaluates to "/opt/eprints3"

Converting Strings to UTF-8

use Unicode::String qw(utf8); my $in = "$";          # U+0024 my $out = utf8( $in ); # 0x24

Capturing Exit Codes

When a command is executed using the backtick (quote-like) operator, the Perl interpreter creates a forked process and executes the command inside the parent shell. The exit status code of the last exec, system or `` call is shifted 8 times and recorded in the special variable $?. 

my $stdout = `ls -l /opt/eprints3`; die( "Forked process failed" ) unless ($? == 0);