您如何直接取消引用存储在另一个哈希中的哈希引用?

时间:2020-10-20 22:49:33

标签: perl hash reference key

如果我将对哈希的引用存储在另一个哈希中,是否可以不使用临时变量而直接取消引用呢?

class PostModelSerializer(WritableNestedModelSerializer):

    is_active = serializers.BooleanField(default=True)
    path = serializers.HyperlinkedIdentityField(
        view_name="api:post-detail", lookup_field='slug')

    images = MediaModelSerializer(read_only=True, many=True)
    details = DetailModelSerializer(required=False, many=True)

    # annotated fields
    is_author = serializers.BooleanField(read_only=True, default=False)

    class Meta:
        model = Post
        fields = '__all__'
        read_only_fields = ['is_locked', 'slug', 'user', 'is_author']

    def create(self, validated_data):
        instance = super().create(validated_data)

        request = self.context.get('request', None)
        if request:
            try:
                images = request.data.getlist('images')
                for image in images:
                    self.instance.images.create(image=image)
            except Exception as e:
                pass

        return instance

    def update(self, instance, validated_data):
        instance = super().update(instance, validated_data)
        
        request = self.context.get('request', None)
        if request:
            try:
                images = request.data.getlist('images')
                for image in images:
                    self.instance.images.create(image=image)
            except Exception as e:
                pass

        return instance

是否可以在不使用临时变量$ temp_ref的情况下取消引用上例中的%hash?

1 个答案:

答案 0 :(得分:4)

您需要大括号而不是括号:

print join(" ",keys %{ $other_hash{"key1"} }), "\n";
#                 ---^-- here            --^-- and here