I am reading the CIF (Collective Intelligence Framework) source code on GitHub
In the file src/lib/CIF/Generated.pm.in
I saw a statement like this
use constant PROTOCOL_VERSION => @CIF_PROTOCOL_VERSION@;
Why are there two at signs @
?
package CIF;
use warnings;
use strict;
use constant VERSION => '@CIF_VERSION_MAJOR@.@CIF_VERSION_MINOR@.@CIF_VERSION_PATCH@@CIF_VERSION_META@';
our ($MAJOR_VERSION, $MINOR_VERSION, $PATCH, $META) = VERSION =~ /^(\d+)\.(\d+)\.(\d+)-?([\w\.\d]+)?$/;
use constant PROTOCOL_VERSION => @CIF_PROTOCOL_VERSION@;
use constant ORG => '@ORG@';
use constant DEFAULT_PORT => @DEFAULT_PORT@;
use constant DEFAULT_FRONTEND_PORT => DEFAULT_PORT();
use constant DEFAULT_BACKEND_PORT => (DEFAULT_PORT() + 1);
use constant DEFAULT_PUBLISHER_PORT => (DEFAULT_PORT() + 2);
use constant DEFAULT_STATS_PUBLISHER_PORT => (DEFAULT_PORT() + 3);
our $CIF_USER = '@CIF_USER@';
our $CIF_GROUP = '@CIF_GROUP@';
our $BasePath = '@CIF_PATH@';
our $LibPath = '@siteperldir@';
our $EtcPath = '@ext_sysconfdir@';
our $VarPath = '@ext_localstatedir@';
our $LogPath = $VarPath.'/log';
our $PidPath = $VarPath.'/run';
our $BinPath = $BasePath . '/bin';
our $SbinPath = $BasePath . '/sbin';
our $SmrtRulesPath = $EtcPath . '/rules';
our $SmrtRulesDefault = $SmrtRulesPath . '/default';
our $SmrtRulesLocal = $SmrtRulesPath . '/local';
1;