This is my very first try in this most prestigious contest so I have no high hopes of winning.

The code is presented here in a more readable format with comments that should be self-explanatory.
The actual entry is more compressed to make it more illegible.


#$t = "xli$tivp$nsyvrep";  # This is the string that represents 'the perl journal'
                           # if you subsctract 4 from the ascii value

$/=42;	# Use this as a constant.

# Build the string $t
$t=&n.'$t';		# Call sub &n which return 'xli' and add '$t' to the string.
{			# Start of code block. Doesn't do anything except adding to the general confusion.
$t.='i'.&s.&s($t);	# Add 'i' to string and call sub &s without and with argument (returns 'v' and 'p' respectively).
$t.='$n'.&t;		# Add '$n' to string and call sub &t without args (returns 'syvrep').
			# Now the string is complete.

split //, $t;		# Make an array of all characters.
for (@_){		# Loop through the array
	$_ = ord;	# Get the ASCII number of character
	$_--;		# Substract 1 from value
	$__++;		# Red herring #1, doesn't do anything
	$/;		# Red herring #2, doesn't do anything
	$_ -= 3;	# Substract 3 from value
	$_t .= chr;	# Build new string with characters (contains "the perl journal").
}

# Subroutine s
# If called with an argument it returns chr(112) which is 'p' since $/ is 42 (42+28+42).
# Otherwise it returns a 'v' chr(34 + 42*2)
sub s { @_ ? chr($/+28+$/) : chr(34+$/*2) }


for (split / /,$_t){	# Split the new string on spaces
	s/\b(.)/uc $1/e;# Uppercase first character of each word
	push @t, $_;	# Build an array @t of the words.
}
}	# End of code block

print &t($t);	# Call &t with an argument (any arg. would do) and print the result 'The Perl Journal'.

sub n {'xli'}	# Subroutine that returns 'xli'.

sub t {
	# If no args are used, put together the string 'syvrep' and return it.
	# This is done by adding characters with the results from &s (without and with args.).
	return ( chr(115). 'y' . &s . 're' . &s($t) ) unless shift;

	join " ", @t;	# Put together the words in the array @t if we were called with arguments..
}


