portable hash syntax