It is not bad. I would change "got" to "made".
Interested in Language
When I was walking on a crowded street, the clasp of someone's bag caught my cardigan and it got a hole.
Could anyone please correct the sentence so it flows better? Thank you.
An "ambiguous antecedent" is a problem in writing. "Susan told Mary that she thought she was ugly and she laughed." -- Who does Susan think is ugly? Who laughed? You don't know.
Naturally we apply logic to situations. We can guess that the sweater got the hole in it, not the clasp, but grammatically, the same subject is the default.
I'm not a teacher, but I write for a living. Please don't ask me about 2nd conditionals, but I'm a safe bet for what reads well in (American) English.