質問は気に入っていますが、Perl の経験がないので、どのようにアドバイスすればよいかわかりません。
「Pythonイディオム」をGoogleで検索することをお勧めします。あなたはいくつかの宝石を見つけるでしょう。特に:
http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.html
http://docs.python.org/dev/howto/doanddont.html
http://jaynes.colorado.edu/PythonIdioms.html
変数の「宣言」の問題については、次のアドバイスをお勧めします。
Python では、オブジェクトには変数名とは別に、独自の寿命があることに注意してください。変数名は、オブジェクトにバインドされるタグです。いつでも、おそらく完全に異なるタイプの別のオブジェクトに名前を再バインドできます。したがって、これは完全に合法です。
x = 1 # bind x to integer, value == 1
x = "1" # bind x to string, value is "1"
実際、Python は強く型付けされています。信じられないかもしれませんが、コード 1 + "1" を実行してみてください。値 1 を持つ整数オブジェクトは、明示的な型強制がない場合、文字列値の追加を受け入れません。したがって、Python の名前には、変数のプロパティにフラグを立てる記号文字が含まれることはありません。それは Python のやり方ではありません。任意の正当な識別子名は、任意の型の任意の Python オブジェクトにバインドできます。